- PVSM.RU - https://www.pvsm.ru -
В официальном блоге Django появилась информация [1] о том, что планируется расширить функционал встроенной ORM миграциями — важным функционалом, который присутствует во многих современных ОРМ-ах, что называется «из коробки», например в рельсовом ActiveRecord или пхпшной Doctrine. Исторически сложилось, что этот функционал отсутствует в Django ORM.
В отсутствии нормального инструмента контроля за версией схемы базы данных, по сути, страдают все: разработчики сторонних приложений ломают голову, использовать ли миграции, подключив в зависимости другое стороннее приложение, или нет, каждый резиз становится головной болью для разработчиков и админов — приходится придумывать [2] способы [3] как бы проще произвести апгрейд. Словом, в плане контроля версии БД в мире django царит легкий хаос.
Стандартом де-факто сегодня является South [4], но поскольку это все-таки даже не контриб, поэтому присутствует некоторая несогласованность действий (как, например, поддержка версии питона). Автор приложения Эндрю Гудвин [5], уже несколько лет входящий в состав «кор тим», собрался наконец разрешить данную проблему и подготовить код, который потом войдет в состав кодовой базы фреймворка. Миграция БД — довольно большая и трудоемкая задача, требующая много времени и сил от разработчика. Поэтому Эндрю предложил комьюнити профинансировать его работу, создав соотвествующий проект [6] на кикстартере. Условия следующие:
На момент написания статьи проект уже набрал почти 7 тысяч фунтов. Так что счастью быть. Кстати, уже сейчас на гитхабе можно посмотреть пул-реквест [7] полугодичной давновсти с набросками данной работы.
Впрочем, я лично рассматриваю данный проект на кикстартере еще и как возможность поблагодарить Эндрю Гудвина за приложение, без которого, на мой взгляд, разработка под джанго была бы очень затруднительна.
Интересно, что далеко не все пользователи джанги разделяют энтузиазм по поводу добавления нового функционала. За примерами, кстати, далеко ходить не нужно [8]. Основная аргументация — низкое качество кода сауса. Тут наверное, стоит учесть 2 важных факта: во-первых, для подготавливаемого кода будут действовать те же стандарты, что и для остального кода фреймворка, а во-вторых, использование миграций, также как и Django ORM — дело сугубо добровольное, поэтому разработчикам, использующий South станет чуточку удобней, а тем, кто его игнорирует, врядли придется испытывать по этому поводу какие-либо неудобства.
Автор: wronglink
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/30191
Ссылки в тексте:
[1] появилась информация: https://www.djangoproject.com/weblog/2013/mar/22/kickstarting-schema-migrations-django/
[2] придумывать: https://docs.djangoproject.com/en/1.2/ref/contrib/csrf/#ref-csrf-upgrading-notes
[3] способы: https://docs.djangoproject.com/en/1.4/topics/i18n/timezones/#time-zones-migration-guide
[4] South: http://south.aeracode.org/
[5] Эндрю Гудвин: http://www.aeracode.org/
[6] соотвествующий проект: http://www.kickstarter.com/projects/andrewgodwin/schema-migrations-for-django
[7] пул-реквест: https://github.com/django/django/pull/376
[8] не нужно: http://habrahabr.ru/company/netangels/blog/170877/#comment_5939733
[9] Источник: http://habrahabr.ru/post/173933/
Нажмите здесь для печати.