我的内心发生了很大的变化models.py
,包括删除很多字段,并重命名几个类。schemamigration --auto
工作正常,但尝试migrate
抛出一堆错误。
我的所有代码目前都在开发中,所以我不介意丢失太多数据。所以我希望 South“取消转换”或“取消管理”应用程序,以便我可以使用以下命令重建所有表格syncdb
again.
或者我可以删除所有迁移列表并执行schemamigration --initial
again.
是的,只需删除迁移并运行schemamigration --initial
再次。无论如何,在投入生产之前,您应该按照正常流程执行此操作。如果您已经投入生产至少一次,请不要删除所有迁移 - 仅删除您在当前开发周期中创建的迁移,然后运行schemamigration --auto
仅进行一次迁移,而不是潜在的多次迁移。
FWIW,要使用 South“取消转换”应用程序,您只需删除“迁移”目录,但在这种情况下,没有必要。
UPDATE
有人指出,如果您已经迁移了应用程序,并且删除了所有迁移并生成了一个新迁移,South 会抱怨迁移仍在数据库中。您应该遵循的实际流程是:
-
回滚到您在当前开发周期中创建的最新迁移之前的状态。例如,如果您已经位于 0005,并且为正在进行的开发工作创建了三个新迁移(现在位于 0008),则您将回滚到 0005。如果所有迁移都是新的,则回滚到zero
:
python manage.py migrate yourapp zero
删除您要合并的所有迁移。在上面的示例中,这将是 0006、0007 和 0008,或者对于新应用程序,迁移目录中的所有内容,但__init__.py
.
-
生成新的迁移以覆盖您刚刚删除的迁移。如果是新应用程序,请使用--initial
,或者如果它是预先存在的应用程序,请使用--auto
.
python manage.py schemamigration --initial yourapp
-
Migrate
python manage.py migrate yourapp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)