Làm thế nào để di chuyển trở lại từ lần di chuyển đầu tiên trong Django 1.7?


117

Tôi đã tạo một ứng dụng mới với một số mô hình và bây giờ tôi nhận thấy rằng một số mô hình chưa được nghĩ ra. Vì tôi chưa cam kết mã, điều hợp lý sẽ là di chuyển cơ sở dữ liệu đến trạng thái tốt nhất và thực hiện lại quá trình di chuyển với các mô hình tốt hơn. Trong trường hợp này, trạng thái tốt cuối cùng là cơ sở dữ liệu nơi ứng dụng mới không tồn tại.

Làm cách nào để tôi có thể di chuyển trở lại từ lần di chuyển đầu tiên trong Django 1.7?

Trong Southmột có thể làm:

python manage.py migrate <app> zero

Điều này sẽ xóa <app>khỏi lịch sử di chuyển và xóa tất cả các bảng của<app> .

Làm thế nào để làm điều này với Django 1.7 di chuyển?

Câu trả lời:


197

Bạn cũng có thể làm tương tự với Django 1.7+:

python manage.py migrate <app> zero

Điều này sẽ xóa <app>khỏi lịch sử di chuyển và xóa tất cả các bảng của<app>

Xem tài liệu django để biết thêm thông tin.


7
Điều này có được ghi lại ở bất cứ đâu không? Các tài liệu django về sự di cư đang thiếu trầm trọng ...
rnevius

2
Tài liệu có thể được tìm thấy trong trang tài liệu django-admin và management.py
n__o

@không, cám ơn. Đã cập nhật câu trả lời.
ChillarVà

1
Làm thế nào bạn sẽ xử lý IntegrityError: NOT NULL ràng buộc không thành công?
wasabigeek

2
Chỉ cần thử điều này trên Django 1.9 và nó cũng hoạt động tốt. Cảm ơn
Dário

9

bạn cũng có thể sử dụng số phiên bản:

python manage.py migrate <app> 0002

Nguồn: https://docs.djangoproject.com/en/1.7/ref/django-admin/#django-admin-migrate


5
Câu hỏi được hỏi là về việc di chuyển trở lại từ lần di chuyển đầu tiên và việc sử dụng 0000không hoạt động
guival

tôi hiểu rồi, tôi có thể đã hiểu sai câu hỏi (mặc dù nó không được viết tốt bằng IMHO). tại sao bạn không bỏ DB? oh well
jsh 22/02/18

2
bỏ toàn bộ DB cho một bảng là hơi quá mức cần thiết
guival 23/02
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.