Django:处理导入数据库的迁移?
Django: handle migrations for an imported database?
我正在使用 Django 1.8 并尝试建立一个现有项目。我继承了一个数据库转储和一个代码库。
我已成功导入数据库转储。
问题是,如果我尝试 运行 migrate
针对导入的数据库,我会收到有关已存在的列的错误,因为数据库已经处于所有迁移的结束状态:
django.db.utils.ProgrammingError: column "managing_group_id"
of relation "frontend_pct" already exists
我该如何解决这个问题?
我希望能够从这一点开始添加新的迁移,我也不希望删除所有现有的迁移。
基本上我需要一种表达方式"skip straight to migration 36, and continue from there"。
使用--fake
选项告诉Django数据库中的每个应用程序都已经迁移到特定迁移。比如已经迁移到migration 36的app:
./manage.py migrate --fake myapp 0036_your_migration_name
您必须为每个已安装的应用执行此操作。
我认为上一个答案解决了您的迁移问题。因此我在下面添加了一个 link...
如果您刚开始使用 django 1.7 及更高版本,那么
这里我想补充一句linkDjango Migration How works
我认为这会很有用。
我正在使用 Django 1.8 并尝试建立一个现有项目。我继承了一个数据库转储和一个代码库。
我已成功导入数据库转储。
问题是,如果我尝试 运行 migrate
针对导入的数据库,我会收到有关已存在的列的错误,因为数据库已经处于所有迁移的结束状态:
django.db.utils.ProgrammingError: column "managing_group_id"
of relation "frontend_pct" already exists
我该如何解决这个问题?
我希望能够从这一点开始添加新的迁移,我也不希望删除所有现有的迁移。
基本上我需要一种表达方式"skip straight to migration 36, and continue from there"。
使用--fake
选项告诉Django数据库中的每个应用程序都已经迁移到特定迁移。比如已经迁移到migration 36的app:
./manage.py migrate --fake myapp 0036_your_migration_name
您必须为每个已安装的应用执行此操作。
我认为上一个答案解决了您的迁移问题。因此我在下面添加了一个 link...
如果您刚开始使用 django 1.7 及更高版本,那么
这里我想补充一句linkDjango Migration How works
我认为这会很有用。