Python django 1.7如何使用现有表进行迁移

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

我升级到django 1.7 我们需要处理移民问题

我的数据库已经存在于多个表中

我的步骤如下:

1.我在django应用程序
测试中删除了
迁移

2.我在django settings.py中删除了south(从已安装的应用程序中删除) 3.run
python 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并重复