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

标签 python django postgresql django-migrations django-2.0

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

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

最佳答案

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

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

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

关于python - 现有数据库的新 Django 应用程序初始数据库迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49879828/

相关文章:

javascript - 在 Django 模板中使用 javascript 重定向尝试 - 产生无效的 url

python - 如何在 Django 的新标签页中打开 url?

python - 部署到移动设备或台式计算机之间的 aws elastic beanstalk 的 django 网站有区别吗?

django - 在 django 中使用带有查询参数的 url 解析

sql - 在 FULL OUTER JOIN 中计算 DISTINCT

postgresql - Pentaho 数据集成 (PDI) : Inserting Boolean values from source to target

python - 任务之间的 Airflow 延迟

python - 使用 DictReader 时如何查找 csv 文件中的最后一行

python - Python Django ValueError的int()无效文字,基数为10:“telba.de_001”

postgresql - pgAdmin 中的 Auto FK 索引有什么用?