Django4.0 迁移-依赖
虽然迁移是针对每个应用程序的,但模型隐含的表和关系过于复杂,无法一次为一个应用程序创建。当您进行需要运行其他东西的迁移时 - 例如,您在图书应用程序中将 ForeignKey
添加到您的作者应用程序 - 生成的迁移将包含对authors迁移中的依赖。
这意味着当您运行迁移时,authors迁移首先运行并创建 ForeignKey
引用的表,然后生成 ForeignKey
列的迁移随后运行并创建约束。如果这没有发生,迁移将尝试创建 ForeignKey
列,而它所引用的表不存在,并且您的数据库将引发错误。
这种依赖行为会影响您限制为单个应用程序的大多数迁移操作。限制为单个应用程序(在 makemigrations
或 migrate
中)是尽力而为的承诺,而不是保证;任何其他需要用于正确获取依赖关系的应用程序都将是。
没有迁移的应用不得与有迁移的应用有关系(ForeignKey
、ManyToManyField
等)。有时它可能有效,但不受支持。