0

我正在开发的应用程序开始需要迁移数据库模式。我考虑过 django-south,但由于我对这种东西没有经验,所以我有点迷茫,这就是我的情况:

开发代码:最新模型,我没有跟踪我对模型所做的更改。

生产代码:运行代码,有旧模型。我们已经配置了服务器,因此我们可以使用 git pull 进行部署:)

如何在不破坏任何内容的情况下更新生产(和数据库)中的代码?我看到了该--initial声明,但我认为它不适用于这种情况,也不适用convert_to_south于伪造移民历史,但我仍然不知道该怎么办。请问有什么帮助吗?

4

2 回答 2

1

Imo 最好为您的项目创建版本控制并使用类似Fabric的东西进行部署。这将很好地包含您的生产环境。

south 没有什么神奇之处,只需将 south 添加到已安装的应用程序设置中并运行初始架构迁移,然后运行假迁移 ( migrate <app_name> --fake),这样 south“知道”模型的当前状态。在未来的版本(包含架构更改)中,您可以运行schemamigration <app_name> --automigrate <app_name>相应地更新模型。

要将迁移保存在一个地方,请使用设置文件中的迁移设置:

SOUTH_MIGRATION_MODULES = {
    'app_name_1': 'project_name.migrations.page',
    'app_name_2': 'project_name.migrations.medialibrary',
}
于 2013-04-19T08:27:06.727 回答
1

您必须检查生产版本(以使模型恢复生产状态),创建初始迁移,将该迁移复制到您当前的开发分支,然后创建架构迁移。

于 2013-04-19T14:47:44.740 回答