【发布时间】:2023-10-01 15:02:02
【问题描述】:
我切换了数据库名称,现在我的 Django 模型与我的数据库表不同步。强制 Django 执行所有迁移以同步模型和表的命令是什么?我不想 manage.py migrate --fake。
【问题讨论】:
-
要运行所有迁移,您需要
python manage.py migrate。但我不明白你现在的情况。你改变了database names这是否意味着你改变了你的数据库?如果你切换到另一个数据库,你不应该有任何表,不是吗?为什么需要强制? -
我切换到的数据库中确实有表,但它们略有不同;它们对应于早期版本的 Django 模型。
-
然后您需要
--fake到与您当前数据库匹配的确切迁移,并应用所有其他迁移。您可以使用manage.py migrate <app_name> <migration_name>迁移到特定迁移。但是,当您搞砸时,迁移并不是修复数据库的神奇工具。