django south基于多个数据库

django south基于多个数据库,django,django-south,Django,Django South,我在django项目中使用了两个环境:开发和生产。大多数情况下,我都在开发中工作,当我更改模型中的字段时,我会使用south迁移到新模型 我不明白的是,我现在如何将它转换到我的生产数据库?我正在做的是将代码提交到SVN中,并在生产环境中进行更新,然后尝试迁移 我应该提交迁移目录和文件吗?还是我不应该?在我的生产机器上进行迁移时,似乎总是失败 编辑: 我做了额外的测试。我已清除我的south histroy表并删除所有迁移目录 现在在我的本地环境中运行:python manage.py conve

我在django项目中使用了两个环境:开发和生产。大多数情况下,我都在开发中工作,当我更改模型中的字段时,我会使用south迁移到新模型

我不明白的是,我现在如何将它转换到我的生产数据库?我正在做的是将代码提交到SVN中,并在生产环境中进行更新,然后尝试迁移

我应该提交迁移目录和文件吗?还是我不应该?在我的生产机器上进行迁移时,似乎总是失败

编辑: 我做了额外的测试。我已清除我的south histroy表并删除所有迁移目录

现在在我的本地环境中运行:python manage.py convert_to_south app_name

一切似乎都很顺利。现在,我在模型中添加了一个附加字段并运行:python manage.py schemamigration app_name--auto

新字段已按预期迁移到我的数据库中。现在,我提交了带有.py文件的迁移文件夹(包含0001首字母和0002新字段)

在我的开发环境中,我更新了包含迁移文件的树。我运行python manage.py syncdb。创建了south_migrationhistory表,但未删除

现在我运行python manage.py schemamigration app_name--auto并获得: “似乎什么都没有改变。”


南迁历史仍然是空的。。。。。我不知道我在这里做错了什么

您应该提交迁移目录和文件。当您执行svn更新时,south现在知道如何处理您的新迁移


South查找一个名为
South\u migrationhistory
的数据库表,查看已经应用了哪些迁移,并在此基础上应用迁移文件夹中指定的新迁移。如果不签入新的迁移文件,它将始终以“无新更新”结束

正确的方法是将所有迁移文件包括在svn中,在生产环境上执行svn更新并运行迁移。这就是你在做的吗?如果是这样的话,请提供更多关于失败原因的详细信息。如果我这样做,它只会说“没有什么需要更新”您使用的是两个完全分离的、不同的数据库吗?通常,South应该检测上次应用的迁移是什么,然后只运行新的迁移(感谢South_migrationhistory表)…如果我这样做,它只会说“没有要更新的内容”,并且不执行任何迁移。只需检查
South_migrationhistory
表,看看迁移是否已应用,您是否有防止写入其中一个数据库的路由器设置?