Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение > Как сделать загрузку дампа БД в SVN-репозиторий?


Автор: sidd 27.3.2011, 14:03
Мы с ребятами решили вместе писать сайт один, который работает с MySQL. Создали проект на «СоурсФордже». Теперь каждый пишет у себя на компе в среде NetBeans и через SVN-плагин закачивает в репозиторий код. Но вот что делать с базой данных? Можно сделать, чтоб вместе с кодом на «СоурсФордж» закачивался дамп БД? А потом, чтоб при скачивании какой-нибудь ревизии этот дамп сразу заливался к тебе в БД?
Не уверен, что правильно раздел выбрал. Вопрос вроде как по программному обеспечению, которое это сможет делать. Ну если что, извините.

Автор: skyboy 28.3.2011, 21:40
посмотри http://habrahabr.ru/blogs/development_tools/114273/.
я бы попробовал на precommit хук навесить создание дампа(возможно, только структуру или как-то ещё разделить то, что должно быть одинаковым от собственных тестовых данных).
а на post-update - восстановление из дампа БД. конечно, если такой хук существует. я не нашел.
на худой конец, можно по крону проверять дату модификации файла-дампа, и через некоторое время после обновления он будет восстановлен.

Автор: sidd 30.3.2011, 22:29
skyboy, спасибо за совет smile
А как вообще профессиональные разработчики в таких случаях поступают? У каждого своя локальная база или одна общая на каком-то сервере?
Мне вообще не принципиально сделать эту штуку с автоматическим заливанием дампа. Просто я раньше командной разработкой не занимался, а хочется делать все правильно. 

Автор: skyboy 30.3.2011, 22:46
поступают так, как рациональнее.
там, где я работаю, особо не заморачивались и "синхронизация БД" должна запускаться вручную.
но это не показатель.
очевидно, что из двух связанных сущностей: структура БД и данные в БД синхронизироваться безусловно должна только первая. А вот данные - частично могут быть критичны к актуализации(в голову ничего не приходит категоричного - все придуманное можно было бы и в файлы запулить;но, в принципе, такие данные вполне могут быть - просто пример не приведу), а частично - наоборот, быть локальными(к примеру, разработчик создает пользователя и описывает его права - очевидно, что не надо перезаписывать права или самих пользователей данными других разработчиков). потому простого решения быть не может(переносим структуру и часть данных - довольно размыто, но уже настораживает smile).

Автор: sidd 1.4.2011, 19:40
Ладно, спасибо smile Буду тогда думать, как лучше.

Автор: BuShaRt 14.5.2011, 14:24
Для этого используются миграция БД. В вашем случае - это +1 файл к ветке тикета, который при выполнение выполняет определенные действия в базе данных. На пример создает новую таблицу или добавляет поля к старой, ну или что-нибудь посложнее. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)