django - 使用 South、Django 和 Git 时处理数据库迁移的正确方法是什么?

标签 django git django-models database-migration django-south

背景:-

我正在使用 Django 1.3。我们使用 South 作为数据库迁移和 Git SCM 的模块。

问题:-

处理形成的迁移文件夹的正确方法是什么?

主要问题是我在开发机器中更改了数据库架构,当我将其上传到生产服务器时,我必须迁移现有架构。在这样做的同时,迁移文件总是存在一些问题。

我应该只将 migrations 文件夹添加到 gitignore 吗?或者有更好的方法吗?

最佳答案

您应该将 migrations 文件夹添加到您的版本控制系统,并使用相同的文件进行生产和开发。如果您不是从一开始就引入迁移并且您已经有现有的表,那么您可能会在生产系统上遇到一些问题。

因此您必须伪造第一次迁移,这通常与syncdb 在您第一次创建数据库时所做的相同。 因此,当第一次尝试在生产机器上为您的应用程序应用迁移时,请执行 manage.py migrate app_name 0001 --fake。这让 South 知道,第一次迁移已经应用(这已经发生在 syncdb 中),当您再次运行 migrate 时,它将继续进行以下迁移。

关于django - 使用 South、Django 和 Git 时处理数据库迁移的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10083130/

相关文章:

django - 在 Django 中显示多对多(通过)和自引用关系

git - 如何修复 GIT 错误 : HEAD: invalid reflog entry xxxxxxxxxxxxxxxx

git - IntelliJ IDEA/网络 Storm : how to make all files unselected by default in the commit dialog?

git - 为什么我必须在切换分支之前存储/提交我的更改?

django - 在 django-admin 中过滤选择字段选项

django - 使用固定装置将 django admin auth.groups 和用户迁移到新数据库

python - Django NoReverseMatch : trying to get slug in a template

python-3.x - 如何在 Django 中批量创建或更新

django - 在 Django Serializer 中获取反向关系

django - 重用 Django Rest Framework 嵌套序列化器中的现有对象