我正在使用django 1.7作为我的应用程序。我遇到了一些迁移问题。每当我尝试更改外键模型中的字段名称时,它就会中断。唯一的解决方法是转到数据库并进行修复,然后运行migrate
,然后运行syncdb
。
当我的应用程序变得更大时,我如何解决这些问题,并且随着我的架构更改,我将很快花费更多时间来解决数据库错误。
django 1.7不支持South并且有自己的迁移功能并不强大?(我不确定,只是初学者)
答案 0 :(得分:10)
Django 1.7中的迁移框架基于South。我升级你应该读这个:
https://docs.djangoproject.com/en/1.7/topics/migrations/#upgrading-from-south
来自文档:
从南方升级如果您已经预先存在迁移 用South创建,然后升级过程使用 django.db.migrations很简单:
确保所有安装都与其迁移完全保持同步。去掉 来自INSTALLED_APPS的“南方”。删除所有(编号)迁移 文件,但不是目录或 init .py - 请确保删除 .pyc文件也是。运行python manage.py makemigrations。 Django应该看到 空迁移目录并在中进行新的初始迁移 新格式。运行python manage.py migrate。 Django会看到的 初始迁移的表已经存在并将其标记为 应用而不运行它们。而已!唯一的复杂因素是 你有一个外键的循环依赖循环;在这种情况下, makemigrations可能会进行多次初始迁移,你会这样做 需要将它们全部标记为应用:
python manage.py migrate --fake yourappnamehere