建议使用Django South重置迁移历史记录的方法是什么?

我已经积累了许多使用South(0.7)和Django(1.1.2)进行的迁移,这些迁移在我的单元测试中开始占用大量时间。我想重置基准并开始新的迁移。我已经阅读了South文档,进行了常规的Google / Stackoverflow搜索(例如“ django south(重置或删除或删除)迁移历史记录”),但没有发现任何明显的内容。

我考虑过的一种方法是通过手动“删除” South或“清除”历史记录来“重新开始”(例如,清除db表,从Migrations Director中删除迁移文件),然后重新运行,

./manage.py schemamigration southtut --initial

因此,如果有人以前做过并且有一些提示/建议,将不胜感激。

回答:

只要你注意同时在所有部署上执行此操作,就不会有任何问题。就个人而言,我会:

    rm -r appname/migrations/ 

./manage.py reset south

./manage.py convert_to_south appname

(请注意,“ reset south”部分会清除所有应用程序的迁移记录,因此请确保你为所有应用程序运行另外两行或有选择地删除)。

最后的convert_to_south调用进行了新的迁移并对其进行了虚假应用(因为你的数据库已经具有相应的表)。在此过程中,无需删除所有应用程序表。

当我需要摆脱所有这些不需要的开发迁移时,这就是我在开发+生产服务器上正在做的事情:

  1. 确保双方都有相同的数据库架构
  2. 删除两侧的每个迁移文件夹
  3. 运行./manage.py在两侧重置南(如帖子所述)=清除南表*
  4. 在两侧运行./manage.py convert_to_south(伪造0001迁移)
  5. 然后我可以重新开始进行迁移并在服务器上推送迁移文件夹

*除非你只想清理一个应用程序,否则,你将需要编辑south_history表并仅删除有关该应用程序的条目。

以上是 建议使用Django South重置迁移历史记录的方法是什么? 的全部内容, 来源链接: utcz.com/qa/398137.html

回到顶部