Задавайте вопросы, мы ответим
Вы не зашли.
При разработке удобно хранить код и шаблоны в базе, но одновременно удобно изпользовать svn. Как сделать, чтобы изменения данных в таблице отслеживались svn. Тема уже обсуждалась в нете, но простого решения предложено не было.
Приходит в голову такое решение:
SELECT ... INTO OUTFILE
svn up
svn ci
LOAD DATA INFILE
Такая схема будет работать при фиксированной структуре контроллируемых таблиц. Есть ли методы лучше?
Неактивен
Для метаданных можно делать mysqldump -d и пытаться закоммитить.
Восстанавливать метаданные надо в отдельную базу и потом натравливать
какой-то сценарий сравнения (их есть несколько с названием mysqldiff,
каждый имеет свои плюсы и минусы). На этом этапе я бы всегда делал
manual intervention хотя бы в плане «хочу применить следующее (y/n)»
Сами же данные как правило версионировать не стоит (иначе это не дан-
ные, а метаданные). Если хочется иметь слепок на какой-то момент, можно
к каждой строке приделать еще номер версии и выбирать последние.
Неактивен
Насчет данных не согласен. Пусть в базе хранятся шаблоны для сайта, над которыми работают несколько девелоперов. Девелопер исправил их у себя и хочет закоммитить. Если в самой таблице приписывать версию, то все только усложнится, но не даст возможности делать commit и update. Например, в vBulletin версионирование и апдейт шаблонов реализован в админском интерфейсе и это конечно лучше, чем все исправления всегда вносить вручную, но хочется общее готовое решение.
Неактивен
Ultimate solution я тут не вижу. Нескольким разработчикам я бы дал
доступ к редактированию SVN напрямую, база в данном случае будет
вторичной, т.к. нам нужна полноценная функциональность системы
версионирования. Если же хватит простого последовательного интер-
фейса сохранения, то почему бы его и не сделать? Опционально —
делать diff своего файла и последнего сохраненного, если кто-то еще
редактировал. Но это уже будет написанием собственной VCS.
Неактивен