Может ли кто-нибудь объяснить мне, как произойдет миграция в django? На самом деле я хочу, чтобы полная бэкэнд-процедура команды «./manage.py migrate»Объяснение о команде migrate в django
ответ
Об этом однажды говорилось на конференции автора «django under the hood». У меня есть сводка этого: http://reinout.vanrees.org/weblog/2014/11/14/2migrations.html
Как это работает, измельчая все операции в крошечные зависимости. Каждое отдельное поле, которое должно быть создано, превращается в крошечный шаг зависимости. После того как список шагов сортируется (через цикл разрешения зависимостей) в правильный список шагов, оптимизатор просматривает список и оптимизирует его. Если модель создается и удаляется, например, ничего не нужно делать.
Последней частью головоломки является график. Он создает ориентированный график всех основных миграций в памяти. Для этого нужно прочитать все модели на диске. Он также выглядит в базе данных. Там есть таблица, которая указывает, какие миграции (или, вернее, узлы в графе миграции) были применены.
Если вы хотите посмотреть на код, вот некоторые указатели:
django/db/migrations/autodetector.py
, начните _detect_changes()django/db/migrations/optimizer.py
, начните уменьшать()django/db/migrations/graph.py
django/db/migrations/loader.py
** Редакционное примечание **: этот ответ был сначала первым абзацем wi й ссылке. Когда я добавил оставшуюся часть ответа через две минуты, она была уже дважды опущена. Извините, что не отправил ответ за один раз. –
Спасибо @Reinout van Rees – Prafulla