我正在开发的应用程序开始需要迁移数据库模式。我想过django-south,但因为我没有使用这种东西的经验,所以我有点迷茫,这是我的情况:
开发代码:最新的模型,我没有跟踪我对模型所做的更改。
产品代码:运行代码,有旧模型。我们已经配置了服务器,这样我们就可以只使用git拉来进行部署:)
如何在不破坏任何东西的情况下更新生产环境(和数据库)中的代码?我看到了--initial语句,但我不认为它适用于这种情况,也不认为convert_to_south伪造迁移历史,但我仍然不知道我应该做什么。有什么需要帮忙的吗?
发布于 2013-04-19 16:27:07
最好是为你的项目创建版本控制,然后用Fabric之类的东西来部署它。这将很好地包含您的生产环境。
south没有什么神奇之处,只需将south添加到已安装的应用程序设置中,并运行初始模式迁移,然后运行假迁移(migrate <app_name> --fake),以便south‘知道’您的模型的当前状态。在未来的版本中(包含模式更改),您可以运行schemamigration <app_name> --auto和migrate <app_name>来相应地更新模型。
要将迁移保留在一个位置,请使用设置文件中的迁移设置:
SOUTH_MIGRATION_MODULES = {
'app_name_1': 'project_name.migrations.page',
'app_name_2': 'project_name.migrations.medialibrary',
}发布于 2013-04-19 22:47:45
您必须检出生产版本(以使模型返回到生产状态),创建初始迁移,将该迁移复制到您的当前开发分支,然后创建模式迁移。
https://stackoverflow.com/questions/16100206
复制相似问题