запуск миграции Django через Fabric дает разные результаты - PullRequest
0 голосов
/ 05 декабря 2018

Мы запускаем makemigrations и migrate при развертывании через Fabric (файлы миграции не передаются в кодовую базу).Однако, похоже, что это не создает миграцию для некоторых приложений.Выполнение одних и тех же команд миграции вручную (SSH непосредственно на сервере) приводит к разным (правильным) выводам.

Например, Fabric выполняет следующее:

./manage.py showmigrations --plan --settings=project.settings.dev_en

Что приводит к следующему выводу (я его немного укорочил для краткости):

[X]  contenttypes.0001_initial
[X]  auth.0001_initial
[X]  admin.0001_initial

Если я SSH подключаюсь к серверу (используя тот же пользовательский Fabric) и запускаю его вручную,точно такая же команда выдает (опять же, немного отрезал, чтобы сократить его):

[X]  contenttypes.0001_initial
[X]  auth.0001_initial
[X]  accounts.0001_initial
[X]  accounts.0002_userprofile_gq_questions_user_type
[X]  accounts.0003_auto_20170720_0742
[X]  admin.0001_initial

Миграции для приложения accounts были опущены (некоторые другие приложения имеют такую ​​же проблему).

Точно так же - и что более важно - запуск makemigrations через Fabric приводит к «Не обнаружено изменений», а запуск вручную приводит к правильному созданию файла миграции для уязвимого приложения / с.

Некоторые вещи, которые я 've проверено:

  • Уязвимые приложения находятся в INSTALLED_APPS.
  • Они содержат каталог migrations, доступный для записи пользователем, к которому подключается Fabric.
  • The django_migrations столправильно отражает содержимое различных папок миграции.
  • Fabric cd входит в каталог проекта и активирует virtualenv

Почему Fabric, по-видимому, видит сайт в другом состояниичем это?Почему не регистрируются изменения в некоторых моделях приложений?

...