Ran*_*ang 5 migration deployment heroku django-south
我正在使用 Django 开发 Web 系统,它们部署在 Heroku 上。系统投入生产后,必须保留所有数据库数据和迁移文件(即00*_* 文件)。以下是我执行数据库迁移和部署的过程:
对于第一次部署,在manage.py makemigrations本地执行并推送到 Heroku。
manage.py migrate在 Heroku 上执行。
如果稍后更改模型:
makemigrations在本地执行并推送到 Heroku。
migrate在 Heroku 上执行。
如果模型发生变化,则重复第 3 步和第 4 步。
随着系统的发展,有越来越多的迁移文件。我想知道:在成功迁移和部署后,我可以删除所有迁移文件并重新开始吗?那是:
对于第一次部署,在makemigration本地执行并推送到 Heroku。
migrate在 Heroku 上执行。
删除所有本地迁移文件。
makemigrations在本地执行以创建看似启动的迁移文件。
更改型号:
makemigration在本地执行并推送到 Heroku。
migrate在 Heroku 上执行。
如果模型发生变化,则重复步骤 3 到 6。
上述程序是否正确?
对于您的每个应用程序:
1)假装回滚所有现有的迁移:
./manage.py migrate app zero --fake
Run Code Online (Sandbox Code Playgroud)
该zero参数表明我们回滚到第一次迁移。您可以通过运行来确认所有迁移都已回滚./manage.py migrate app --list。该--fake选项的信号,我们不应该在实际运行迁移,但仍然标记迁移为已经运行:https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-option---伪造的
2)。删除迁移文件
git rm app/migrations/*
Run Code Online (Sandbox Code Playgroud)
3) 创建一个新的迁移文件
./manage.py makemigrations app
Run Code Online (Sandbox Code Playgroud)
4) 假装运行新的迁移
./manage.py migrate app --fake
Run Code Online (Sandbox Code Playgroud)
与 1) 一样,步骤 4) 并未实际运行迁移。
编辑:添加了一些解释并修正了zero论点。
| 归档时间: |
|
| 查看次数: |
1287 次 |
| 最近记录: |