新的Django应用程序初始数据库迁移现有数据库

时间:2018-04-17 13:45:04

标签: python django postgresql django-migrations django-2.0

我有一个充满了大量数据的现有数据库。我想迁移到Django,所以我继续用python manage.py inspectdb创建了必要的模型。除了删除managed = False之外,我还没有改变任何东西,因为我希望Django管理表(错误可能是初始迁移?)。

现在模型已准备就绪,如何生成第一个迁移文件,以便我可以开始更改字段以生成其他迁移(在此处重命名字段)。我理解python manage.py migrate将处理Django特定模型的创建,但实际上并不创建任何迁移文件?某些来源表明第一个迁移文件应与--fake一起运行,因此未应用。下一个迁移文件是否会记得将第一个迁移文件作为假文件运行并仅应用下一个文件?

1 个答案:

答案 0 :(得分:3)

您希望makemigrations创建迁移。 migrate命令应用迁移,但不创建它们。

您可以使用--fake-initial选项,以便Django不会尝试创建已存在的表。请注意,--fake--fake-initial是两个不同的命令。

运行migrate时,django_migrations表会更新以存储当前应用的迁移。迁移文件本身不会更改。 --fake命令在不运行迁移的情况下更新django_migrations表。这意味着如果您错误地使用它,您的数据库和django_migrations表可能会不同步,这可能很难修复。