Jakie jest twoje ulubione rozwiązanie do zarządzania migracjami baz danych w django? [zamknięte]

Bardzo podoba mi się system zarządzania migracją baz danych Rails. Nie jest w 100% idealny, ale robi sztuczkę. Django nie wysyła takiego systemu migracji bazy danych (jeszcze?), ale istnieje wiele projektów open source, które właśnie to robią, takich jak na przykład django-evolution i south.

Tak się zastanawiam, jakie rozwiązanie do zarządzania migracją baz danych dla django preferujesz? (jedna opcja na odpowiedź Proszę)

Author: Marcin, 2009-01-09

8 answers

Używałem South , ale migrujące również wygląda obiecująco.

 22
Author: akaihola,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-11 10:06:08

Migracja wygląda ładnie i prosto.

 9
Author: mcella,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-08 23:05:58

Używamy Django w pracy i używamy dmigracji . Choć ma swoje dziwactwa, do tej pory było przydatne. Niektóre funkcje:

  • używa tabeli w bazie danych do śledzenia, które migracje zostały zastosowane.
  • ponieważ wie, które z nich zostały zastosowane, można migrować w górę iw dół.
  • integruje się z manage.py jako polecenie.
  • poszczególne Skrypty migracji to Python, ale jeśli logika migracji to czysty SQL, dmigracje sprawia, że łatwo można po prostu sql i go wykonać.

Jeden problem polega na tym, że obecnie obsługuje tylko MySQL. Jednak jeden z naszych ludzi robi lokalny hack do niego, aby wspierać PostgreSQL, którego używamy. Z tego, co pamiętam, hack nie był aż tak rozległy, więc nie powinno być strasznie trudno go zhakować, aby wspierać inne RDBMSs.

 3
Author: Brian Clapper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-10 22:43:59

Lubię django-evolution :

Plusy:

  • clean design
  • no SQL needed
  • elastyczny
  • trivial to install
  • Łatwy w użyciu

Wady:

  • migracje nie są stałe w bazie kodowej
  • istnieje ryzyko przypadkowego uruchomienia migracji dwa razy
 2
Author: MiniQuark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-08 22:59:09

Oprócz South, dmigrations, django-evolution i Migration pomyślałem, że dodam simplemigrations jako kolejne narzędzie, które widziałem do automatyzacji migracji Django.

Używałem trzech z nich w przeszłości, ale teraz wykonuję migracje ręcznie. Myślę o próbie na południe ponownie ze względu na najnowsze funkcje dodane.

 1
Author: Van Gale,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-19 22:18:30

Tylko zauważ, że od 2009 roku, praktycznie każdy wspomniany tu projekt poza południem jest martwy. Południe jest de facto standardem, na dobre i na złe.

 1
Author: Marcin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-02 16:41:51

Jeśli używasz SQLAlchemy jako ORM, de facto standardem jest alembik .

Inną alternatywą, o której nie wspomniano, jest yoyo-migracje .

 1
Author: cwadding,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-29 20:14:00

Używam simple-db-migrate

Plusy:

  • pozwala mi to cofnąć migracje (IDK, jeśli inni też to robią).
  • integruje się z manage.py
  • każdy, kto zna SQL może stworzyć migrację
  • nie uruchamia migracji dwa razy: aplikacja zapisuje informacje o migracji (znacznik czasu, zapytanie, itp.) na stole

Wady:

  • jeśli dodasz migrację z niższym znacznikiem czasu niż najnowsza zainstalowana migracja, ta migracja nie działa
  • tylko MySQL jest obsługiwany
 0
Author: fmondaini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-02 14:22:48