Có, chỉ cần xóa di chuyển và chạy lại schemamigration --initial
. Bạn nên làm điều đó anyways như là khóa học bình thường trước khi chuyển sang sản xuất. Nếu bạn đã đi vào sản xuất ít nhất một lần, đừng xóa tất cả các di chuyển - chỉ những thứ bạn đã tạo trong chu kỳ phát triển hiện tại và sau đó chạy schemamigration --auto
để chỉ có một lần di chuyển thay vì nhiều lần di chuyển.
FWIW, để "hủy chuyển đổi" một ứng dụng bằng cách sử dụng miền Nam, bạn chỉ xóa thư mục "di chuyển", nhưng trong trường hợp này, không cần thiết.
CẬP NHẬT
Nó được chỉ ra rằng nếu bạn có đã di cư ứng dụng của bạn, và bạn xóa tất cả các cuộc di cư và tạo ra một cái mới duy nhất, Nam sẽ phàn nàn về cuộc di cư vẫn còn trong cơ sở dữ liệu. Quy trình thực tế bạn nên tuân theo là:
Lùi lại trước khi di chuyển mới nhất bạn đã tạo trong chu kỳ phát triển hiện tại. Ví dụ: nếu bạn đã ở mức 0005 và bạn đã tạo ba lần di chuyển mới cho công việc phát triển mà bạn đang làm (hiện tại là 0008), bạn sẽ quay lại 0005. Nếu tất cả các di chuyển là mới, bạn quay lại zero
:
python manage.py migrate yourapp zero
Xóa tất cả các di chuyển bạn sắp hợp nhất. Trong ví dụ trên, điều đó sẽ là 0006, 0007 và 0008 hoặc cho một ứng dụng mới, mọi thứ trong thư mục di chuyển nhưng __init__.py
.
Tạo di chuyển mới để bao gồm di chuyển bạn vừa xóa. Nếu đó là ứng dụng mới, hãy sử dụng --initial
hoặc nếu đó là ứng dụng đã tồn tại từ trước, hãy sử dụng --auto
.
python manage.py schemamigration --initial yourapp
Di chuyển
python manage.py migrate yourapp
Nguồn
2012-03-12 16:24:58
Ah ok, cảm ơn cho lời giải thích. Mã để xóa di chuyển là gì? – hobbes3
Chỉ cần xóa tệp. Không có lệnh nào - chỉ là cách bình thường bạn xóa mọi thứ. –
Ah ok, tôi đã cố gắng tìm một lệnh xóa từ tài liệu hướng dẫn phía nam lol. Cảm ơn rất nhiều. – hobbes3