Skip to main content
 首页 » 编程设计

python之一个接一个地运行 django 迁移

2024年12月31日25pengyingh

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

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

请您参考如下方法:

为了自动执行迁移而无需每次都手动输入,您可以创建一个 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