2012-03-08 24 views
10

"South" là công cụ tự động hóa việc di chuyển cơ sở dữ liệu cho Django.Django south - cách từ bỏ di chuyển bị nhầm lẫn (và bị hỏng)

Tôi làm cách nào để "từ bỏ" hoặc "xóa" di chuyển miền nam django đang chờ xử lý? Tôi đã làm sai và hỏi django một thời gian ngắn để thực hiện một ràng buộc không thể. Tôi do đó không thể có được bước qua 09 để có được bước 10:

# python2.7 manage.py migrate --list 

django_authopenid 
    (*) 0001_initial 
... 

mymodule 
    (*) 0001_initial 
    (*) 0008_auto__add_mystuff__chg_field_facetanswer_answer_note__del_field_facetq 
    ... 
    () 0009_auto__add_module_redit__add_unique_mystuff_who__chg_field_product_desc 
    () 0010_auto__del_unique_mystuff_who 

Nếu tôi chỉ đơn giản là có thể bỏ bước 09 và 10, tôi có thể chạy 'python2.7 manage.py schemamigration --auto' một lần nữa và được lên và chạy. Làm thế nào tôi có thể vượt qua những sai lầm? Tôi có thể nhận xét ra các dòng 'không thể' trong tập tin python di trú 08, nhưng tôi có thể thấy rằng gây ra vấn đề.

liên quan nhưng không hoàn toàn ở điểm là What's the recommended approach to resetting migration history using Django South?

Trả lời

11

Không có * xung quanh 0009 và 0010 schemamigration, có nghĩa là họ đã không được áp dụng. Bạn chỉ có thể xóa chúng vì chúng không có ý nghĩa gì với DB ngay bây giờ.

p.s. Để đảm bảo mở DB của bạn và xem nếu có bất kỳ thay đổi mới

+0

Để làm rõ điều này: Sau khi đảm bảo các bước này không xuất hiện trong south_migrationhistory trong DB, đi vào thư mục di cư và gỡ bỏ những file 0009_auto__add_module_redit__add_unique_mystuff_who__chg_field_product_desc.py * và 0010_auto__del_unique_mystuff_who .py * –

+0

BẠN ĐANG TUYỆT VỜI! Tôi thực sự chỉ đặt chúng sang một bên và yêu cầu nó để makemigrations một lần nữa. QUÁ DỄ!! –