gpt4 book ai didi

heroku - 南迁移 : delete all migration files (00*_*) and start from 0001, 同时保留原始数据

转载 作者:行者123 更新时间:2023-12-03 16:27:50 25 4
gpt4 key购买 nike

我正在使用 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
    zero参数表明我们回滚到第一次迁移。您可以通过运行 ./manage.py migrate app --list 确认所有迁移都已回滚。 . --fake选项表明我们不应该实际运行迁移,但仍将迁移标记为已运行: https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-option---fake

    2)。删除迁移文件
    git rm app/migrations/*

    3) 创建一个新的迁移文件
    ./manage.py makemigrations app

    4) 假装运行新的迁移
    ./manage.py migrate app --fake

    与 1) 一样,步骤 4) 并未实际运行迁移。

    编辑:添加了一些解释并修复了 zero争论。

    关于heroku - 南迁移 : delete all migration files (00*_*) and start from 0001, 同时保留原始数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32074791/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com