.project | Gandja
Ололо, Маньяки!
Я тут ебанулся на отличненько, и сделал одну очень полезную штуку, и назвал её "Gandja" (намёк не понял).
Не знаю как вы, но у меня постоянно какие-то косяки с структурой БД происходят. Локально всё чики, а на сервере какой-нить запрос нет-нет, а не выполню. Проблема эскалировала, когда задействованых в работе компьютеров стало 3. Понять где, что, когда и как делал стало практически невозможно.
В другой ипостаси, над одним подпольным проектом трудится дюжина разработчиков, и надо как-то нам всем локально иметь одинаковую структуру БД.
Есть проблема? Есть решение! Отчего бы не следить за изменениями автоматически (а делиться ими через SVN)? Сказано-сделано.
Welcome to Gandja. Просто и удобно. До безобразия просто и удобно.
copyright note — этот скрипт у нас быстренько на коленке набросал один дяденька, я же его причесал парочкой стилей и с общего согласия выложил на google code

Артём Курапов
Побольше бы описания.
Во-первых глянул - в db changes видимо запросы хранятся, а исполненные отмечаются в базе. Альтернативой было бы перед каждым запросом делать проверку на его уже исполненность (существование поля, ID и тп).
Во-вторых как я понял - несколько production сайтов он не обновляет. Т.е. написан не для обновления стабильных проектов, а чисто для синхронизации работы с базой у разработчиков. У нас в принципе всё так же
24.04.2009 // 23:10 [ ссылка ]
Ответ от Автора
проверка делается — так что после svn up обычно видно сколько «невыполненых» запросов в очереди
да, вы верно поняли, это больше для координации работы нескольких разработчиков
29.04.2009 // 16:32 [ ссылка ]
bes island
Есть ли здесь какое-то отличие от так называемых миграций?
29.04.2009 // 16:30 [ ссылка ]
Ответ от Автора
смотря что вы понимаете под «миграциями»
29.04.2009 // 16:31 [ ссылка ]
bes island
Миграции — это описания последовательных изменений структуры базы данных. Каждая миграция содержит запрос (набор запросов) на изменение и запрос (набор запросов) на откат изменения (хотя могут быть необратимые миграции).
Все миграции нумеруются. Таким образом, создаётся описание всех промежуточных версий структуры БД, причём из любой можно автоматически перейти к последующей или предыдущей (если на пути не было необратимых миграций).
Это как diff’ы в том же SVN.
Как правило, каждая миграция содержится в отдельном файле, что позволяет легко создавать миграции при совместной разработке, включая их в репозиторий. Как только какой-то разработчик желает изменить структуру БД, он создаёт для этого миграцию, и все разработчики её выполняют.
Миграции широко используются, например, в Ruby on Rails.
29.04.2009 // 16:44 [ ссылка ]
Ответ от Автора
да — Gandja это инструмент для миграций. Довольно грубый, но хорошо выполняющий своё дело в нашей команде
29.04.2009 // 16:47 [ ссылка ]