จะย้ายกลับจากการย้ายข้อมูลครั้งแรกใน Django 1.7 ได้อย่างไร


117

ฉันสร้างแอพใหม่พร้อมกับโมเดลบางรุ่นและตอนนี้ฉันสังเกตเห็นว่าบางรุ่นคิดไม่ดี เนื่องจากฉันไม่ได้ยอมรับรหัสสิ่งที่สมเหตุสมผลก็คือการย้ายฐานข้อมูลไปสู่สถานะที่ดีสุดท้ายและทำการโยกย้ายซ้ำด้วยโมเดลที่ดีกว่า ในกรณีนี้สถานะสุดท้ายที่ดีคือฐานข้อมูลที่ไม่มีแอปใหม่

ฉันจะย้ายกลับจากการย้ายข้อมูลครั้งแรกใน Django 1.7 ได้อย่างไร

ในSouthหนึ่งสามารถทำได้:

python manage.py migrate <app> zero

ซึ่งจะล้างจากประวัติศาสตร์การโยกย้ายและการวางตารางทั้งหมด<app><app>

จะทำอย่างไรกับการโยกย้าย Django 1.7

คำตอบ:


197

คุณสามารถทำเช่นเดียวกันกับ Django 1.7+ ได้เช่นกัน:

python manage.py migrate <app> zero

สิ่งนี้จะล้าง<app>ออกจากประวัติการย้ายข้อมูลและทิ้งตารางทั้งหมดของ<app>

ดูเอกสาร djangoสำหรับข้อมูลเพิ่มเติม


7
เอกสารนี้อยู่ที่ใด เอกสาร django เกี่ยวกับการย้ายถิ่นขาดอย่างมาก ...
rnevius

2
สามารถดูเอกสารได้ในหน้าเอกสาร django-admin และ Manage.py: docs.djangoproject.com/th/1.7/ref/django-admin/…
n__o

@ไม่เป็นไรขอบคุณ. คำตอบที่อัปเดต
ChillarAnand

1
คุณจะจัดการกับ IntegrityError อย่างไร: NOT NULL constraint ล้มเหลว?
wasabigeek

2
เพิ่งลองสิ่งนี้กับ Django 1.9 และมันก็ใช้งานได้ดีเช่นกัน ขอบคุณ
Dário

9

คุณยังสามารถใช้หมายเลขเวอร์ชัน:

python manage.py migrate <app> 0002

ที่มา: https://docs.djangoproject.com/en/1.7/ref/django-admin/#django-admin-migrate


5
คำถามที่ถามเกี่ยวกับการย้ายกลับจากการย้ายข้อมูลครั้งแรกและการใช้งาน0000ไม่ได้ผล
guival

ฉันเข้าใจว่าฉันอาจเข้าใจคำถามผิด (แม้ว่า IMHO จะไม่ได้เขียนไว้ดีเป็นพิเศษ) ทำไมคุณไม่ทิ้ง DB ดี
jsh

2
การทิ้งฐานข้อมูลทั้งหมดลงในตารางเดียวถือเป็นเรื่องที่เกินความจำเป็นเล็กน้อย
guival
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.