EDIT - I'm putting a comment below at the top of this as it's important to read it before the > accepted answer that follows @andybak
@Dominique:你关于manage.py重置南方的建议是危险的
如果有任何第三方应用程序使用,则可能会销毁数据库
如下面的@thnee所指出的,在项目的南部.因为你的
答案有这么多好评,如果你能编辑一下,我将不胜感激
并至少添加一条有关此问题的警告,或者(更好的)更改它
反映@hobs方法(这同样方便,但不是
影响其他应用程序)-谢谢!-chrisv 3月26:13于9:09
接受的答案如下:
首先,an answer by the South author:
只要您注意在所有部署上同时执行此操作,这应该不会有任何问题.就我个人而言,我会这么做:
rm -r appname/migrations/
./manage.py reset south
./manage.py convert_to_south appname
(请注意,"reset south
"部分会清除所有应用程序的迁移记录,因此请确保为所有应用程序运行其他两行,或者有 Select 地删除).
最后的convert_to_south
调用进行新的迁移并假应用它(因为您的数据库已经有相应的表).在此过程中不需要删除所有的APP表.
以下是当我需要消除所有这些不需要的开发迁移时,我在开发+生产服务器上执行的操作:
- 确保两端都有相同的数据库架构
- 删除两侧的每个迁移文件夹
- 快跑/管理py reset south(正如帖子所说)两侧=清除南表*
- 快跑/管理两侧py convert_to_south(假装0001迁移)
- 然后,我可以重新开始进行迁移,并将迁移文件夹推送到我的服务器上
*除非您只想清除其中一个应用程序,如果是这样,您将需要编辑您的SOUTURE_HISTORY表,并仅删除有关您的应用程序的条目.