2011-01-21 6 views
2

Для подхода с использованием данных, например. для игр данные, поступающие в базу данных, являются частью (обобщенного) исходного кода для проекта. Какова наилучшая стратегия для контроля над содержимым базы данных? Примечание: не схема. Он должен иметь все свойства SCM, такие как откат и ветвление.SCM для баз данных

+0

Вы просматривали предыдущие вопросы по этой теме, то есть http://stackoverflow.com/search?q=database+version-control? В частности, http://stackoverflow.com/questions/3361939/get-my-database-under-version-control-using-a-dvcs-mercurial/3363481#3363481, в котором указаны плюсы и минусы SCM и резервных копий. Если вам нужны все свойства SCM, то просто используйте SCM, и если он не справится с этой ситуацией очень плохо, просто используйте свой существующий SCM, поэтому вам не нужно использовать 2 для одного и того же проекта. – metamatt

+0

Вы прочитали мой вопрос? в этом случае содержимое базы данных семантически входит в исходный код – Joe

+1

Вы не сказали, что делает ваш экземпляр этого вопроса отличным от других (конечно, это семантически часть исходного кода), или почему вы этого не делаете просто хотите использовать существующий SCM. Если это семантически часть исходного кода и вы хотите все свойства SCM, решение кажется довольно очевидным. В любом случае ответ Ry4an, на который я ссылался, содержит некоторые полезные замечания о том, почему не все обычные возможности SCM могут быть полезны в этой ситуации. – metamatt

ответ

0

Простые текстовые файлы для правильного хранения содержимого для контроля версий. Выберите формат, который легко читать и писать, разделенный запятой, проще всего, если у вас нет 500 столбцов или что-то в этом роде.

Но это оставляет вопрос о его загрузке. Если у вас простая ситуация, сценарий обновления/установки может обрезать исходные таблицы и перезагружать их. Если это не хорошо из-за внешних ключей, вам нужно закодировать небольшую подпрограмму, которая проходит через текстовые файлы по строкам и вставляет новые значения и, возможно, перезаписывает измененные значения.

4

Посмотрите на OffScale DataGrove.

DataGrove предоставляет вам полную функциональность SCM на вашей БД. Он позволяет сохранять версии всего DB (данные + схема), интегрироваться с вашим исходным кодом и даже автоматически откатывать БД после модульного теста. Если вы загрузите более старую версию БД, она автоматически создаст ветви дерева версий БД. Вы можете одновременно загружать две разные версии (они создают виртуальные клоны), не занимая больше места.

Смежные вопросы