我对迁移中创建表的顺序有疑问。由于模型B中有ForeignKey
连接到模型A,因此我在models.py中创建了A,B和C顺序的模型。然后:
python manage.py makemigrations app
生成了用于创建所有模型的迁移文件,但顺序为:
- Create model B
- Create model C
- Create model A
- Add field a_name to b.
由于models.py中的顺序非常重要,但为什么makemigrations
不遵循给定的顺序?
答案 0 :(得分:1)
将模型放置在models.py中的顺序非常重要,当且仅当其中一个引用另一个作为ForeignKey
时。在这种情况下,订单很重要,您会发现迁移确实保留了订单。
真正重要的不是当你做anage.py makemigrations
时会出现什么,但当你manage.py migrate
时会发生什么,django通常会找出正确的顺序。如果您在任何时候认为您想要控制创建表的顺序,您可以自由编辑迁移文件(即使这不是真的需要)