Что делает миграция данных на юг по сравнению со схемой миграции? - PullRequest
11 голосов
/ 02 декабря 2011

Я недавно начал копаться в документации South и обнаружил, что у нее есть два различных типа миграции:

  • schemamigration
  • datamigration

В результате моего невежества я всегда использовал схемы для всего. Другими словами, даже если бы у меня было что-то, что было действительно «миграцией данных», я просто использовал бы схему Юга для преобразования данных (без видимых последствий).

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

Ответы [ 2 ]

6 голосов
/ 02 декабря 2011

На самом деле существует только один вид миграции, но две команды.datamigration создает новую пустую миграцию для заполнения, а schemamigration - необязательная вспомогательная команда, которая будет пытаться обнаружить изменения схемы и автоматически создать миграцию.

Редактировать: с http://south.aeracode.org/docs/commands.html#schemamigration

Хотя миграция - это настоящее мясо и кости Юга, в отличие от этого, схема миграции является совершенно необязательным дополнением.Это утилита, которая поможет вам написать некоторые из ваших миграций (в частности, те, которые меняют схему);если хотите, можете проигнорировать это и написать все сами, в этом случае мы желаем вам удачи и счастливого набора текста.

5 голосов
/ 02 декабря 2011

За ведущий разработчик Юга:

Вы можете увидеть разницу здесь: https://bitbucket.org/andrewgodwin/south/src/b3ed126b19a2/south/v2.py

Как видно, единственное отличие состоит в том, что миграция данных не всухую, если у вас есть база данных, которая требует этого (MySQL). Иначе, есть небольшая разница, по крайней мере, на данный момент - управление команды отличаются, хотя (это все о разделении пользовательского интерфейса, по существу).

...