Подверсия для базы данных (я хочу что-то для значений данных в базе данных, а не для схемы) - PullRequest
3 голосов
/ 06 сентября 2010

Я использую github для поддержки версий и синхронизации кода. Мы команда из двух человек, и мы находимся в разных местах.

Как мы можем убедиться, что наши базы данных синхронизированы.

Обновление: -

Я разработчик рельсов. Но сейчас я работаю над проектами drupal (где база данных является центром вариаций). Поэтому я хочу убедиться, что у команды должна быть синхронизированная база данных. Также значения в разных таблицах.

Мне нужно что-то, что синхронизирует наши значения данных.

Централизованная база данных является хорошим решением. Но что-то беспокоит, когда кто-то работает в автономном режиме

Ответы [ 8 ]

2 голосов
/ 06 сентября 2010

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

Если вы не используете visual studio, тогда вы все равно можете создавать сценарии для своего sql как файлы .sql [но с большей работой], а затем контролировать их по мере необходимости

1 голос
/ 14 сентября 2010

Вы можете использовать Sql Source Control вместе с Sql Data Compare для управления источниками как схемы, так и данных.Вот статья из Redgate: Источник управляющих данных.

1 голос
/ 06 сентября 2010

Взгляните на Red Source SQL Source Control - http://www.red -gate.com / products / SQL_Source_Control /

Если честно, я никогда не использовал его, но их другиеПрограммное обеспечение фантастическое.И если все, что вы хотите сделать, это синхронизировать схему БД (а не полный контроль над источниками), то в прошлом я очень успешно использовал их продукт SQL Compare.

(ps. Я не работаю дляих!)

0 голосов
/ 15 ноября 2011

Оформить OffScale DataGrove .

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

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

Я предлагаю вам использовать отдельную БД для каждого разработчика и синхронизировать их с помощью DataGrove.

Отказ от ответственности - я работаю в OffScale: -)

0 голосов
/ 21 сентября 2010

http://www.red -gate.com / продукция / SQL_Data_Compare / . Мы использовали этот инструмент для синхронизации баз данных в нашей компании. Позже у нас были некоторые конкретные требования, поэтому нам пришлось написать собственный код для синхронизации. Зависит от того, насколько сложна ваша база данных и сколько изменений происходит. Намного проще, если у вас есть время, когда никто не работает, и вы можете заблокировать базу данных для синхронизации.

0 голосов
/ 20 сентября 2010

Я чувствую твою боль. У меня были ужасные проблемы с тем, чтобы SQL Server хорошо играл с SVN. В конце концов я выбрал решение для совместной базы данных. Каждый день я запускаю обширный скрипт для резервного копирования всех наших определений схемы (особенно хранимых процедур) для контроля версий в текстовые файлы. Из-за ограниченного количества изменений это работает хорошо.

Теперь я использую эту технику для нашего крупного проекта и личных проектов. Единственный минус в том, что он полагается на постоянную связь. Другие ответы предполагают, что полное управление версиями базы данных занимает очень много времени, и я склонен согласиться. Для «живых» обновлений мы используем инструменты Red Gate, они сравнивают схемы и данные, и это работает очень хорошо.

0 голосов
/ 06 сентября 2010

Попробуйте Wizardby . Это мой личный проект, но я использовал его на нескольких предыдущих работах с большим успехом.

По сути, это инструмент, который позволяет вам указать все изменения в вашей схеме базы данных независимо от базы данных, а затем применить эти изменения ко всем вашим базам данных.

0 голосов
/ 06 сентября 2010

Вот некоторые из возможностей.

  1. Использование той же базы данных. Настройте центральную базу данных, где каждый может подключиться. Таким образом, вы уверены, что все используют одну и ту же базу данных все время.

  2. После каждого изменения экспортируйте базу данных и передайте ее в VCS. Этот вариант требует дисциплины и ручного труда.

  3. Использовать какое-то другое определение схемы. Например, Doctrine для php имеет возможность построить базу данных из определения yaml, которое может быть сохранено в vcs. Это проще автоматизировать, чем пункт 2.

  4. Используйте другое программное обеспечение / скрипт, который обновляет базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...