【问题标题】:Django south - how to abandon a mistaken (and broken) migrationDjango south - 如何放弃错误(和损坏)的迁移
【发布时间】:2012-03-25 14:48:49
【问题描述】:

“South”是为 Django 自动迁移数据库的工具。

如何“放弃”或“删除”待处理的 django 南迁移?我犯了一个错误,并简单地要求 django 做出一个不可能的约束。因此,我无法通过第 09 步进入第 10 步:

 # python2.7 manage.py migrate --list

 django_authopenid
  (*) 0001_initial
 ...

 mymodule
  (*) 0001_initial
  (*) 0008_auto__add_mystuff__chg_field_facetanswer_answer_note__del_field_facetq
  ...
  ( ) 0009_auto__add_module_redit__add_unique_mystuff_who__chg_field_product_desc
  ( ) 0010_auto__del_unique_mystuff_who

如果我可以简单地放弃步骤 09 和 10,我可以再次运行“python2.7 manage.py schemamigration --auto”并开始运行。我怎样才能克服错误?我可以注释掉迁移 08 的 python 文件中的“不可能”行,但我可以看到这会导致问题。

相关但不完全正确的是What's the recommended approach to resetting migration history using Django South?

【问题讨论】:

    标签: django django-south


    【解决方案1】:

    在 0009 和 0010 架构迁移附近没有 *,这意味着它们尚未应用。您可以简单地删除它们,因为它们现在对数据库没有任何意义。

    附言确保打开您的数据库并查看是否有任何新更改

    【讨论】:

    • 澄清这一点:确保这些步骤没有出现在数据库的 south_migrationhistory 中后,进入迁移目录并删除文件 0009_auto__add_module_redit__add_unique_mystuff_who__chg_field_product_desc.py* 和 0010_auto__del_unique_mystuff_who.py*
    • 你太棒了!我实际上只是将它们放在一边,并要求它再次进行迁移。这么简单!!
    猜你喜欢
    • 2012-08-06
    • 1970-01-01
    • 2011-09-28
    • 2015-03-02
    • 1970-01-01
    • 2013-10-25
    • 2011-08-06
    • 2012-08-13
    • 1970-01-01
    相关资源
    最近更新 更多