我已经使用 South (0.7) 和 Django (1.1.2) 积累了相当多的迁移,这些迁移开始在我的单元测试中消耗相当多的时间。我想重置基线并开始一组新的迁移。我已经审查了南方文档,完成了通常的 Google/Stackoverflow 搜索(例如“django South(重置或删除或删除)迁移历史记录”),但没有发现任何明显的东西。
我考虑过的一种方法是通过“删除”South 或手动“清除”历史记录来“重新开始”(例如,清除数据库表,从迁移控制器中删除迁移文件),然后重新运行,
./manage.py schemamigration Southtut --initial
因此,如果有人以前做过此操作并有一些提示/建议,他们将不胜感激。
如果您需要有选择地(仅针对一个应用程序)重置花费太长时间的迁移,this为我工作。
rm <app-dir>/migrations/*
python manage.py schemamigration <app-name> --initial
python manage.py migrate <app-name> 0001 --fake --delete-ghost-migrations
不要忘记手动恢复任何依赖关系在其他应用程序上添加如下行depends_on = (("<other_app_name>", "0001_initial"),("<yet_another_app_name>", "0001_initial"))
给你的<app-dir>/migrations/0001_initial.py
文件,作为下面迁移类中的第一个属性class Migration(SchemaMigration):
.
那么你可以./manage.py migrate <app-name> --fake --delete-ghost-migrations
在其他环境中,每这个答案。当然,如果你伪造删除或伪造migrate zero
您需要通过以下迁移手动删除任何剩余的数据库表this.
更核心的选择是./manage.py migrate --fake --delete-ghost-migrations
在实时部署服务器上,然后是 [my]sqldump。然后将转储通过管道传输到需要迁移的、完全填充的数据库的环境中的 [my]sql 中。我知道南方的亵渎行为,但对我有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)