Что означает «Миграция приложения Django»? - PullRequest
6 голосов
/ 23 декабря 2009

Я много думал о значении migrating a Django app в последние несколько дней и слышал о переносе приложений Django с django-south . Может быть, это просто отсутствие достаточных навыков английского языка (поскольку английский не является моим родным языком), или это одна из тех вещей, с которыми вы сталкиваетесь в жизни программиста, которые настолько просты, что для их понимания нужен гений (сначала).

Я прочитал перевод 'migrate' на моем родном языке, прочитал определение migration в Википедии и прочитал "идею " django-south, цитируя:

С помощью South вы устанавливаете его, а затем дайте одному или нескольким вашим приложениям миграции (либо написание их по рука, или автогенерация их из вашего модельные определения). Когда вы синхронизируете, вы будете синхронизировать только те приложения, которые не имеют миграции (такие вещи, как django.contrib.auth, например, которые имеют фиксированную схему), а затем когда вы запускаете ./manage.py мигрировать, Юг пинает и делает Миграции. Разумно.

Это сбивает с толку, и я до сих пор не понимаю всего, что стоит за «миграцией приложений django» или «миграцией в целом». Я бы понял, если бы я знал, как интерпретировать слово migration

Вы поняли, я надеюсь.

Будьте терпеливы со мной, но я бы очень хотел знать. Так что, может быть, один из вас мог бы объяснить мне, пожалуйста.

Спасибо за ваше время заранее.

Ответы [ 2 ]

9 голосов
/ 23 декабря 2009

Когда речь заходит о Сауте и Джанго, миграция означает изменение схемы базы данных.

Команда syncdb, встроенная в Django, не может автоматически изменить для вас схему, не удалив сначала все, поэтому возникли такие вещи, как Юг и миграция.

Итак, по сути, миграция - это способ изменить схему базы данных, сохраняя ваши данные в целости.

Со страницы документов :

С миграциями, каждое изменение в вашем база данных (в том числе создание ваши начальные таблицы) в миграция. Миграции - это Питон файлы, которые живут в миграциях каталог. Они могут применяться и не применено (обращено) в последовательности.

1 голос
/ 23 декабря 2009

Миграция обычно означает перемещение приложения из одного места в другое. Этот перевод может произойти либо с помощью физического движения. (Например, перемещение с одного сервера на другой) или как более логичное движение. (Например, от C # до F #)

Учитывая, что упоминается только одна технология. Вероятно, это в первую очередь приложение физического перемещения с небольшим логическим перемещением на стороне базы данных.

Подводя итог, что делает приложение. Скорее всего, он просто экспортирует всю вашу конфигурацию и данные в файловую структуру, которая затем может быть реинтегрирована в вашу базу данных на новом сервере.

...