Nếu bạn không quan tâm đến dữ liệu:
Cách tốt nhất là bỏ cơ sở dữ liệu và chạy syncdb
lại. Hoặc bạn có thể chạy:
Đối với Django> = 1.5
python manage.py flush
Đối với Django <1,5
python manage.py reset appname
(bạn có thể thêm --no-input
vào cuối lệnh để bỏ qua lời nhắc tương tác.)
Nếu bạn quan tâm đến dữ liệu:
Từ các tài liệu:
syncdb sẽ chỉ tạo bảng cho các mô hình chưa được cài đặt. Nó sẽ không bao giờ đưa ra các câu lệnh ALTER TABLE để khớp với các thay đổi được thực hiện đối với một lớp mô hình sau khi cài đặt. Các thay đổi đối với các lớp mô hình và lược đồ cơ sở dữ liệu thường liên quan đến một số hình thức mơ hồ và trong những trường hợp đó, Django sẽ phải đoán đúng những thay đổi cần thực hiện. Có nguy cơ dữ liệu quan trọng sẽ bị mất trong quá trình này.
Nếu bạn đã thực hiện các thay đổi đối với một mô hình và muốn thay đổi các bảng cơ sở dữ liệu cho phù hợp, hãy sử dụng lệnh sql để hiển thị cấu trúc SQL mới và so sánh cấu trúc đó với lược đồ bảng hiện có của bạn để tìm ra các thay đổi.
https://docs.djangoproject.com/en/dev/ref/django-admin/
Tham khảo: FAQ - https://docs.djangoproject.com/en/dev/faq/models/#if-i-make-changes-to-a-model-how-do-i-update-the-database
Mọi người cũng giới thiệu Nam ( http://south.aeracode.org/docs/about.html#key-features ), nhưng tôi chưa thử.