แม้ว่าตาราง "myapp_tablename" มีอยู่แล้วเกิดข้อผิดพลาดหยุดการเพิ่มหลังจากที่ฉันทำ. / manage.py โยกย้าย myapp --fake DatabaseError จะไม่แสดงคอลัมน์ดังกล่าว: myapp_mymodel.added_field
เจอปัญหาเดียวกันหมด!
1. ตรวจสอบหมายเลขการโยกย้ายครั้งแรกที่เป็นสาเหตุของปัญหานี้ ให้ถือว่าเป็น: 0010
2. คุณต้อง:
./manage.py schemamigration myapp --add-field MyModel.added_field
./manage.py migrate myapp
หากไม่มีมากกว่าหนึ่งช่องคุณต้องทำซ้ำสำหรับแต่ละฟิลด์
3. ตอนนี้คุณมีการย้ายข้อมูลจำนวนมากดังนั้นให้ลบไฟล์ออกจาก myapp / migrations (0011 และต่อไปหากคุณต้องการเพิ่มหลายฟิลด์)
4. เรียกใช้สิ่งนี้:
./manage.py migrate myapp 0010
ตอนนี้ลอง. /manage.py โอนย้ายแอปของฉัน
ถ้ามันไม่ล้มเหลวคุณก็พร้อม เพียงแค่ตรวจสอบอีกครั้งถ้าฟิลด์ใดฟิลด์หนึ่งไม่หายไป
แก้ไข:
ปัญหานี้ยังสามารถเกิดขึ้นได้เมื่อคุณมีฐานข้อมูลการผลิตที่คุณติดตั้งใต้และการโยกย้ายครั้งแรกการสร้างครั้งแรกในสภาพแวดล้อมอื่น ๆ ที่ซ้ำกันสิ่งที่คุณมีอยู่ในฐานข้อมูลของคุณ การแก้ปัญหาง่ายกว่ามากที่นี่:
ปลอมการโยกย้ายครั้งแรก:
./ จัดการโยกย้าย myapp 0001 - ปลอม
กลิ้งไปกับการโยกย้ายที่เหลือ:
./ จัดการโยกย้าย myapp