Запуск миграций Django один за другим - PullRequest
0 голосов
/ 18 октября 2018

У меня есть миграции django на производственном сервере до 0102_auto.Теперь на моем сервере разработки у меня есть еще 13 и номер 0115_auto на сервере dev.Завтра я перенесу все файлы на производственный сервер.Также я перенесу models.py, views.py и шаблоны на рабочий сервер.Обычно я запускаю миграцию на производственном сервере, и он переносит все новые 13 миграций.Но на этот раз я хочу запустить миграцию одну за другой, чтобы иметь больше контроля.Потому что у меня были некоторые проблемы на тестовом сервере.

Можно ли запустить эти 13 новых миграций одну за другой вручную, одну за другой?

1 Ответ

0 голосов
/ 18 октября 2018

Чтобы автоматизировать миграцию, не вводя ее каждый раз вручную, вы можете создать сценарий 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: миграция

...