【问题标题】:Running the django migrations one by one一个一个地运行 django 迁移
【发布时间】:2018-10-18 15:34:14
【问题描述】:

我在生产服务器上进行 django 迁移,直到 0102_auto。 现在在我的开发服务器中,我还有 13 个,开发服务器中的编号是 0115_auto。 明天我会将所有文件带到生产服务器。我还将携带 models.py 、 views.py 和模板到生产服务器。通常我在生产服务器上运行迁移,它会迁移所有新的 13 个迁移。但是这次我想一个一个地运行迁移以获得更多的控制权。因为我在测试服务器上遇到了一些问题。

是否可以手动、一个接一个地运行这 13 个新迁移?

【问题讨论】:

    标签: python django django-migrations


    【解决方案1】:

    为了使迁移自动化而不是每次都手动输入,您可以创建一个bash 脚本来为您处理迁移顺序。这是一个例子:

    migrations.sh:

    #!/bin/bash
    
    APP='my_app_name'
    # Here list the migration's files order
    LIST=( '0001 0002 0003 0004' )
    
    for i in $LIST; do
        echo 'Applying migration' $i
        python manage.py migrate $(echo $APP) $(echo $i)
    done
    

    然后将自己置于与manage.py 相同的级别并运行:

    $> sh migrations.sh
    

    它会输出如下内容:

    Applying migration 0001
    Operations to perform:
      Target specific migration: 0001_initial, from my_app_name
    Running migrations:
      Rendering model states... DONE
      ...
    

    欲了解更多信息,请访问Django documentation: migrate

    【讨论】:

    • 如果没有多次迁移怎么办?
    猜你喜欢
    • 2021-02-09
    • 2017-09-21
    • 2023-03-20
    • 2014-09-17
    • 2012-05-18
    • 1970-01-01
    • 2023-04-08
    • 2019-07-13
    • 1970-01-01
    相关资源
    最近更新 更多