(我知道有一个与此相同的标题,但问题不同)。
我设法使我的开发机器迁移和生产迁移不同步。
我有一个使用 South 的 Django 应用程序。我有自己的工作流程,运行良好(这可能不是正确的做事方式,但我没有遇到任何问题)。
基本上我有一个脚本将生产数据库转储复制到我的开发计算机。它还复制了迁移文件。这样两者就同步了,我就可以正常运行 South 命令了。
现在我已经升级到1.7,并开始使用迁移。当我使用以前的工作流程(复制数据库转储和生产中的迁移文件)时,它没有检测到我的开发计算机上的更改。
我已经阅读了迁移文档,我发现正确的使用方法是
- 在我的开发机器上运行“make migrations”和“migrate”。
- 在我的开发计算机上运行“migrate”以实际进行数据库更改
- 复制更改,包括迁移文件。
- 在生产机器上运行“迁移”。 (没有“makemigrations”步骤)
反正。现在一切都是一团糟。我想“重置”我的迁移并从头开始,从现在开始正确地做事。
我需要做什么?
- 删除迁移表的内容(在两台机器上)?
- 删除迁移文件夹的内容? (包括init.py 文件)。
- 按照新迁移的文档开始迁移。
我错过了什么吗?
为什么从生产环境(数据库和迁移文件)复制所有内容之后没有检测到我的开发计算机上的任何更改是否有原因
我只会在两个环境上执行以下操作(只要代码相同)
- 删除您的迁移文件夹
- 从 django_migrations 中删除,其中 app =
<your app name>
。您也可以只截断该表。
python manage.py makemigrations
python manage.py migrate --fake
之后,您的所有更改都应该跨环境检测到。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)