.project | Gandja

Ололо, Маньяки!

Я тут ебанулся на отличненько, и сделал одну очень полезную штуку, и назвал её "Gandja" (намёк не понял).

Не знаю как вы, но у меня постоянно какие-то косяки с структурой БД происходят. Локально всё чики, а на сервере какой-нить запрос нет-нет, а не выполню. Проблема эскалировала, когда задействованых в работе компьютеров стало 3. Понять где, что, когда и как делал стало практически невозможно.

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

Есть проблема? Есть решение! Отчего бы не следить за изменениями автоматически (а делиться ими через SVN)? Сказано-сделано.

Welcome to Gandja. Просто и удобно. До безобразия просто и удобно.

copyright note — этот скрипт у нас быстренько на коленке набросал один дяденька, я же его причесал парочкой стилей и с общего согласия выложил на google code

Top

Комментарии Отключены

Артём Курапов

Побольше бы описания.

Во-первых глянул - в 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 [ ссылка ]