gpt4 book ai didi

django - 我如何 "unconvert"来自 South (Django) 的应用程序?

转载 作者:行者123 更新时间:2023-12-04 10:55:38 24 4
gpt4 key购买 nike

我在 models.py 中改变了很多,包括删除很多字段,并重命名几个类。 schemamigration --auto工作正常,但正在尝试 migrate抛出一堆错误。

我所有的代码目前都在开发中,所以我不介意丢失数据。所以我希望 South 可以“取消转换”或“取消管理”一个应用程序,以便我可以使用 syncdb 重建所有表格再次。

或者我可以删除所有迁移列表并执行 schemamigration --initial再次。

最佳答案

是的,只需删除迁移并运行 schemamigration --initial再次。在进入生产环境之前,您应该按照正常过程执行此操作。如果您至少已经投入生产一次,请不要删除所有迁移——仅删除您在当前开发周期中创建的迁移,然后运行 ​​schemamigration --auto只获得一次迁移,而不是潜在的多次迁移。

FWIW,要使用South“取消转换”应用程序,您只需删除“迁移”目录,但在这种情况下,没有必要。

更新

有人指出,如果您已经迁移了您的应用程序,并且您删除了所有迁移并生成了一个新的迁移,South 会提示迁移仍在数据库中。您应该遵循的实际过程是:

  • 回滚到您在当前开发周期中创建的最新迁移之前。例如,如果您已经在 0005 并且为您正在进行的开发工作(现在在 0008)创建了三个新迁移,您将回滚到 0005。如果所有迁移都是新的,您回滚到 zero :
    python manage.py migrate yourapp zero
  • 删除您要合并的所有迁移。在上面的示例中,这将是 0006、0007 和 0008,或者对于新应用程序,迁移目录中的所有内容,但 __init__.py .
  • 生成新的迁移以覆盖您刚刚删除的迁移。如果是新应用,请使用 --initial ,或者如果它是一个预先存在的应用程序,请使用 --auto .
    python manage.py schemamigration --initial yourapp
  • 迁移
    python manage.py migrate yourapp
  • 关于django - 我如何 "unconvert"来自 South (Django) 的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9670762/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com