【问题标题】:How can I amend the last migration with Django module South?如何使用 Django 模块 South 修改上次迁移?
【发布时间】:2014-07-29 16:01:06
【问题描述】:

我有以下迁移:

  • 0001_initia.py
  • 0002_solve_null.py

./manage.py migrate legacy --database=local_legacy 之后,我意识到我错过了一些应该属于迁移0002 的修改。

如何修改?

【问题讨论】:

    标签: django migration django-south


    【解决方案1】:

    发布一个老问题 - 希望迟到总比没有好。

    您可以使用 --update 标志在本地修改/更新迁移。

    来自the south tutorial

    ./manage.py schemamigration southtut --auto --update
    

    这只是回滚当前迁移、添加新更改并应用更新的版本。 Ashish Kasturia 的回答仍然是正确的,这只是让它更容易一些。

    【讨论】:

      【解决方案2】:

      您实际上可以删除 0002 文件并重新创建架构迁移。将创建一个新的 0002 文件。

      只需确保迁移可重新运行。例如,如果您在之前的 0002 文件中删除了一个列,则需要手动将该列添加回表中。否则,下次你苹果 0002 会失败。

      或者,您可以使用缺少的东西创建一个新的迁移。

      【讨论】:

      • 我应该fake在此之前迁移到迁移0001吗?
      • 只要你在 0001 之前是最新的,你应该没问题。只需确保 0002 可重新运行即可。
      猜你喜欢
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      相关资源
      最近更新 更多