Python django 1.7如何使用现有表进行迁移
我升级到django 1.7 我们需要处理移民问题 我的数据库已经存在于多个表中 我的步骤如下: 1.我在django应用程序Python django 1.7如何使用现有表进行迁移,python,django,django-1.7,Python,Django,Django 1.7,我升级到django 1.7 我们需要处理移民问题 我的数据库已经存在于多个表中 我的步骤如下: 1.我在django应用程序测试中删除了迁移 2.我在django settings.py中删除了south(从已安装的应用程序中删除) 3.runpython manage.py makemigrations测试 Migrations for 'test': 0001_initial.py: - Create model Person - Create mode
测试中删除了迁移
2.我在django settings.py中删除了south(从已安装的应用程序中删除)
3.runpython manage.py makemigrations测试
Migrations for 'test':
0001_initial.py:
- Create model Person
- Create model Book
- Create model Artical
运行python manage.py迁移测试
要执行的操作:
应用所有迁移:测试
正在运行迁移:
正在应用测试0.0001_首字母。。。伪造
是这样吗?
如果我已有表,如何进行迁移?
请指导我,谢谢如果数据库中存在的表与当前模型具有相同的结构,那么这是正确的(也就是说,在应用上次与South的迁移后,您没有修改models.py文件)。如果是这样的话,你可以放心地继续
如果结构不同,您可以尝试不同的方法:
- 手动创建所需的迁移。您必须编写自己的迁移,并进行必要的修改。您可以找到一些用于更改或添加字段的迁移文件的示例代码,并且您拥有可以调用的方法的完整参考
- 使用phpmyadmin、原始sql或您喜欢的方法手动修改数据库
- 执行
python manage.py dumpdata app1 app2 app3>data.json
,删除数据库,再次创建它,并将其保存到python manage.py loaddata.json
。这可能会引起一些错误,因为您保存的数据是使用旧结构的,因此您必须处理每个错误
- 或者,如果不需要您所拥有的数据,则只需删除数据库并重新创建它
你这样做没有什么不对
第一次迁移被伪造的原因是您的表已经创建:
运行python manage.py迁移。Django将看到
初始迁移已经存在,并将其标记为已应用,而不使用
管理他们
从.我们忘了我的第一句话。请阅读此文档:您需要将models.py恢复到更改模型之前的状态,然后如上所述进行
makemigrations
和migrate
。。。然后将更改应用于models.py并重复