Фреймворк Django получит миграции схемы БД


    В официальном блоге Django появилась информация о том, что планируется расширить функционал встроенной ORM миграциями — важным функционалом, который присутствует во многих современных ОРМ-ах, что называется «из коробки», например в рельсовом ActiveRecord или пхпшной Doctrine. Исторически сложилось, что этот функционал отсутствует в Django ORM.

    В отсутствии нормального инструмента контроля за версией схемы базы данных, по сути, страдают все: разработчики сторонних приложений ломают голову, использовать ли миграции, подключив в зависимости другое стороннее приложение, или нет, каждый релиз становится головной болью для разработчиков и админов — приходится придумывать способы как бы проще произвести апгрейд. Словом, в плане контроля версии БД в мире django царит легкий хаос.

    Стандартом де-факто сегодня является South, но поскольку это все-таки даже не контриб, поэтому присутствует некоторая несогласованность действий (как, например, поддержка версии питона). Автор приложения Эндрю Гудвин, уже несколько лет входящий в состав «кор тим», собрался наконец разрешить данную проблему и подготовить код, который потом войдет в состав кодовой базы фреймворка. Миграция БД — довольно большая и трудоемкая задача, требующая много времени и сил от разработчика. Поэтому Эндрю предложил комьюнити профинансировать его работу, создав соотвествующий проект на кикстартере. Условия следующие:

    • За 3500 фунтов Эндрю обязуется оформить минимально необходимый функционал как можно скорее, сконцентрировавшись на задаче
    • За 4500 фунтов он предлагает реализовать дополнительные низкоуровневые операции, как сохранение данных при перемещении колонок между удаленными ключами, а также поддержку постгресового CREATE INDEX CONCURRENTLY
    • За 7000 фунтов основные функции новых версий South будут подготовлены для совместимости с 1.4 и 1.5 версиями джанги

    На момент написания статьи проект уже набрал почти 7 тысяч фунтов. Так что счастью быть. Кстати, уже сейчас на гитхабе можно посмотреть пул-реквест полугодичной давновсти с набросками данной работы.

    Впрочем, я лично рассматриваю данный проект на кикстартере еще и как возможность поблагодарить Эндрю Гудвина за приложение, без которого, на мой взгляд, разработка под джанго была бы очень затруднительна.

    Интересно, что далеко не все пользователи джанги разделяют энтузиазм по поводу добавления нового функционала. За примерами, кстати, далеко ходить не нужно. Основная аргументация — низкое качество кода сауса. Тут, наверное, стоит учесть 2 важных факта: во-первых, для подготавливаемого кода будут действовать те же стандарты, что и для остального кода фреймворка, а во-вторых, использование миграций, также как и Django ORM — дело сугубо добровольное, поэтому разработчикам, использующий South станет чуточку удобней, а тем, кто его игнорирует, врядли придется испытывать по этому поводу какие-либо неудобства.

    UPD: Спустя всего час и пять минут необходимая сумма собрана (и даже превышена). Так что, Эндрю обещает дополнительно обратить внимание на поддержку Oracle, MSSQL и онлайн миграцию схемы с Persona для MySQL)

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

    Ну что, хабр, подкинем копеечку на бравое дело?

    • 38,8%Конечно, всем станет только лучше219
    • 48,8%Миграции — дело хорошее, но денег не дам275
    • 10,8%Не надо смешивать Django и South61
    • 1,6%Свой вариант в комментариях9
    NetAngels
    Пожалуй, лучший облачный хостинг в России

    Комментарии 12

      +2
      странно что второй пункт популярнее…
      к слову сказать, свои 5 копеек я таки добавил =)
        0
        Возможно вступает в силу популярный стереотип, что за опенсорс деньги брать не прилично.

        P.S. я, разумеется, тоже пожертвовал фунтик — мне не жалко, а разработчику приятно.
          0
          Я второй пункт выбрал. Если честно, просто лень куда-то идти и деньги засылать. А вообще я south люблю и не против, чтобы он в джанго прописался как стандартный компонент.
            0
            Не странно. Думаю, что тут найдется достаточно людей, кто использовал Django (и South) ранее, но более не использует. Я среди их числа.
            Либо людей, кто не видит в этом мнго смысла, и не хочет платить за это.
            Либо просто тех, кто еще недостаточно получает для своих нужд (даже если доход в месяц в рублях шестизначный), и их нельзя винить: на семью можно потратить деньги с большим удовольствием, чем на инструмент для работы. И я среди числа этих людей.
            +1
            Заслал в оркестр на благое дело. Давно пора было запилить это.
              0
              На это не дам. Меня и south как доприложение вполне устраивает.
                +2
                на утро субботы, сумма сборов перевалила за 11 тысяч фунтов стерлингов
                  0
                  А я South использую и он мне по нраву, но денег не дал — просто потому что он уже планируемую сумму собрал.
                    0
                    Где дать денег, чтобы этого не произошло?
                      0
                      Уже негде — комьюнити и разработчики свой выбор довольно явно выразили :-)
                        0
                        Можно говорить только «да» — это не означает, что никто не хочет сказать «нет». И таких, как мне кажется, не мало.
                          0
                          Как я и написал, «нет» может сказать кто угодно — достаточно отказаться от использования этого функционала в проекте. Достойных альтернатив South'у для Django ORM я до сегодняшнего дня не видел. Зато у разработчиков появится единый общий стандартный инструмент (собственно, он и сейчас есть, только выпуск его и релизов Django несколько несогласованны).

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

                    Самое читаемое