【发布时间】:2013-03-25 06:20:13
【问题描述】:
我为我的 django 项目使用了两个环境,开发和生产。我主要从事开发工作,当我更改模型中的字段时,我使用南迁移到新模型。
我不明白现在如何将其传输到我的生产数据库?我正在做的是将我的代码提交到 SVN 并在生产中更新,然后尝试迁移。
我应该提交我的迁移目录和文件吗?还是我不应该?尝试在我的生产机器上迁移时似乎总是失败。
编辑: 我做了额外的测试。我已经清除了我的南历史表并删除了所有迁移目录。
现在我在本地环境中运行:python manage.py convert_to_south app_name
一切似乎都很完美。我现在向我的模型添加了一个附加字段并运行:python manage.py schemamigration app_name --auto
新字段已按预期迁移到我的数据库中。现在,我使用 .py 文件提交了我的迁移文件夹(包含 0001-initial 和 0002 用于我的新字段)
在我的开发环境中,我更新了包含迁移文件的树。我运行 python manage.py syncdb。 south_migrationhistory 表已创建,但 enpty。
现在我运行 python manage.py schemamigration app_name --auto 并得到: “似乎什么都没有改变。”
south_migrationhistroy 仍然是空的.....我不知道我在这里做错了什么
【问题讨论】:
-
正确的方法是将所有迁移文件包含在 svn 中,在生产环境上进行 svn 更新并运行迁移。是你在做什么吗?如果是这样,请详细说明究竟是什么失败了。
-
如果我这样做,它只会说“没有什么可更新的”
-
您使用的是两个分离良好的不同数据库吗?通常 South 应该检测上次应用的迁移是什么,然后运行新的迁移(感谢 south_migrationhistory 表)...
标签: django django-south