【问题标题】:Django, use South or upgrade to 1.6? [closed]Django,使用 South 还是升级到 1.6? [关闭]
【发布时间】:2013-10-22 00:05:33
【问题描述】:

所以我大约在一个半月前开始使用我的第一个 Django 应用程序。我的数据库相当大,我正处于需要更改一些模型的地步。我的 Django 版本是 1.5,我查找并研究了 South 是该版本迁移的事实标准,但是 1.6 引入了内置迁移,但由于它仍然相当新,我应该尝试 South 还是升级到 1.6?

【问题讨论】:

标签: django django-south database-migration


【解决方案1】:

由于 Django 当前的官方版本是 1.5.4,我推荐使用 South。在 Django 的开发版本中,他们将 South 构建到框架中,这应该非常相似。我希望一旦它也发布,他们将有一些方法将 Django 1.5 + South 迁移到带有迁移的 Django。

迁移到 Django 测试版时,您可能会遇到其他问题,其中一些可能不受支持。此外,根据开发版本文档,迁移似乎是built into 1.7

【讨论】:

    【解决方案2】:

    我还建议使用 South。如果您使用现有数据库 http://south.readthedocs.org/en/latest/commands.html#options,您可能必须运行虚假迁移。

    基本上:

    ./manage.py schemamigration app_name --initial
    

    然后

    ./manage.py migrate --all --fake 0001
    

    【讨论】:

    • 现有数据库是什么意思?我已经用 django 构建了我的数据库。
    • 如果您已经让网站运行起来,那么将您的应用程序连接到使用 South 将采取额外的步骤来伪造第一次迁移(因为表格已经存在)。
    • 好吧,我的网站部署在 Heroku 上,但我有同一个数据库的本地副本。所以我不能运行 South,进行修改,更新我的数据库,将我的应用程序推送到 Heroku,然后将我的本地数据库转储到我部署的数据库吗?
    • 是的,我只是想指出你需要运行假迁移才能启动和运行:) 这是一个稍微不同的过程,然后从你运行的地方开始schemamigration app_name --initial然后migrate app_name 如果您要尝试(并且您的表已经存在)南会抛出错误。抱歉,如果我添加了一堆混乱 :D 正如其他人指出的那样,选择南方更多的是一种意见,但它确实做得很好。希望对您有所帮助。
    • 作为旁注,当我开始的时候我没有做的是南提供的依赖项http://south.readthedocs.org/en/latest/dependencies.html
    猜你喜欢
    • 2017-09-06
    • 2015-05-22
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    相关资源
    最近更新 更多