如何在Django 1.7中重置迁移
(我知道有一个与此标题相同的标题,但问题有所不同)。
我设法使开发机器迁移和生产迁移不同步。
我有一个使用South的Django应用。我有自己的工作流程,效果很好(这可能不是正确的处理方式,但我没有任何问题)。
基本上,我有一个脚本,可将生产数据库转储复制到我的开发计算机上。它还复制了迁移文件。这样,两者就同步了,我可以像往常一样运行South命令。
现在,我已升级到1.7,并开始使用迁移。当我使用以前的工作流程(从生产环境复制数据库转储和迁移文件)时,它没有检测到开发计算机上的更改。
我已经阅读了迁移文档,并且看到使用它的正确方法是:
- 在我的开发计算机上运行“进行迁移”和“迁移”。
- 在我的devlopemnt机器上运行“ migrate”以实际进行数据库更改
- 复制更改,包括迁移文件。
- 在生产机器上运行“迁移”。(没有“ makemigrations”步骤)
无论如何。现在都一团糟。我想“重置”我的迁移并从头开始,从现在开始做正确的事情。
我需要做什么?
- 删除迁移表的内容(在两台计算机上)?
- 删除迁移文件夹的内容?(包括init .py文件)。
- 按照文档中的说明开始新的迁移。
我错过了什么吗?为什么从生产中复制所有内容(数据库和迁移文件)之后没有在我的开发计算机上检测到任何更改,这是有原因的
回答:
我将在两种环境下都执行以下操作(只要代码相同)
- 删除你的迁移文件夹
- 从
django_migrations WHERE app
=中删除<your app name>
。你也可以截断该表。 python manage.py makemigrations
python manage.py migrate --fake
在此之后,所有更改都应在整个环境中检测到。
以上是 如何在Django 1.7中重置迁移 的全部内容, 来源链接: utcz.com/qa/401540.html