Я занимаюсь подготовкой приложения Django для его первоначальной производственной версии, и я развернул его экземпляры разработки в нескольких разных средах. Одна вещь, с которой я не могу справиться так гладко, как хотелось бы, - это первоначальная миграция базы данных. Учитывая новую установку Django, развертывание моего приложения из управления версиями и чистую базу данных, manage.py migrate
будет обрабатывать начальное создание всех таблиц (как Django, так и моих моделей). Это здорово, но на самом деле это не создает начальные файлы миграции для моих приложений. Это приводит к возникновению проблемы в будущем, когда мне нужно развернуть изменения кода, требующие новой миграции базы данных, поскольку для Django нет оснований для вычисления дельт.Каков правильный способ обработки начальной миграции базы данных в Django?
Я попытался запустить manage.py makemigrations
в качестве первого шага развертывания, надеясь, что он создаст файлы миграции, но он сообщает, что никаких изменений для переноса нет. Единственный способ найти базовое состояние, в котором я нуждаюсь, - запустить manage.py makemigrations [appname]
для каждого из моих приложений. Должно ли не makemigrations
, вызываемое без определенного имени приложения, забрать все установленные приложения и создать их миграцию? Где я иду не так?
Спасибо за подтверждение. Перечитывая документы, это выглядит как одна из причин, по которым я столкнулся с этой проблемой: Django намеревается, чтобы миграция контролировалась и распределялась по версиям. Я разработал свое приложение вокруг НЕ этого, но, возможно, мне нужно переосмыслить это. –
«Django намеревается, чтобы миграция контролировалась версиями и распределялась» - Да, это правильно. Именно по этой причине. Вероятно, вам придется переоценить ваш подход. –