Подтвердить что ты не робот

Какое ваше любимое решение для управления миграциями баз данных в django?

Мне очень нравится система управления миграцией баз данных Rails. Это не на 100% отлично, но это делает трюк. Django не поставляется с такой системой миграции базы данных (пока?), Но есть ряд проектов с открытым исходным кодом, которые могут сделать именно это, например, джанго-эволюция и юг, например.

Итак, мне интересно, какое решение для управления миграцией баз данных для django вы предпочитаете? (один вариант для каждого ответа)

4b9b3361

Ответ 1

Я использовал South, но Migratory выглядит многообещающим.

Ответ 2

Migratory выглядит красиво и просто.

Ответ 3

Мы используем Django на работе, и мы использовали dmigrations. Хотя у нее есть свои причуды, это было полезно до сих пор. Некоторые функции:

  • Он использует таблицу в базе данных, чтобы отслеживать, какие миграции были применены.
  • Поскольку он знает, какие из них были применены, вы можете выполнить миграцию и вернуться.
  • Он интегрируется с manage.py в качестве команды.
  • Индивидуальные сценарии миграции - это Python, но если ваша логика миграции является чистым SQL, dmigrations упрощает просто SQL-запрос и выполняет его.

Одна из проблем заключается в том, что она только поддерживает MySQL. Однако один из наших ребят делает локальный взлом для поддержки PostgreSQL, который мы используем. Насколько я помню, взлома не была настолько обширной, поэтому не должно быть ужасно сложно взломать ее для поддержки других РСУБД.

Ответ 4

Мне нравится django-evolution:

плюсы:

  • чистый дизайн
  • SQL не нужен
  • гибкий
  • тривиальный для установки
  • простой в использовании

минусы:

  • миграции не фиксируются в кодовой базе
  • существует риск случайного выполнения миграции дважды

Ответ 5

Помимо юга, dmigrations, django-evolution и Migratory, я думал, что добавлю simplemigrations в качестве другого инструмента, который я видел для автоматизация миграции Django.

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

Ответ 6

Просто отметим, что с 2009 года почти каждый проект, упомянутый здесь, кроме Юга, мертв. South является стандартом де-факто, лучше или хуже.

Ответ 7

Если вы используете SQLAlchemy в качестве своего ORM, то стандартом de facto является Alembic.

Другая альтернатива, которая не упоминалась, yoyo-migrations.

Ответ 8

Я использовал simple-db-migrate

Плюсы:

  • он позволяет мне откатывать миграции (IDK, если другие делают это тоже).
  • интегрируется с manage.py
  • каждый, кто знает SQL, может создать миграцию
  • он не выполняет миграцию дважды: приложение записывает информацию о миграции (метку времени, запрос и т.д.) в таблицу

Минусы:

  • Если вы добавите миграцию с более низкой меткой времени, чем последняя установленная миграция, эта миграция не запускается
  • Поддерживается только MySQL