运行 django 迁移一一
Running the django migrations one by one
我在生产服务器上进行了 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
我在生产服务器上进行了 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