Контроль версий баз данных - PullRequest
15 голосов
/ 01 июля 2010

Мне любопытно, есть ли какие-либо решения, желательно бесплатные, которые могут иметь центральную базу данных для публикации данных версионным способом.

Например,

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

Клиент 2 пытается редактировать ту же локальную копию, но когда он отправляется на отправку, он должен разрешать конфликты.

Центральная база данных должна хранить сжатуюразличия между версиями данных.

В любой момент кто-то может просмотреть все версии представленных данных.

Ответы [ 5 ]

3 голосов
/ 17 ноября 2011

Оформить OffScale DataGrove .

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

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

3 голосов
/ 01 июля 2010

«Контроль версий баз данных» является немного двусмысленным для заголовка, потому что вы фактически запрашиваете VCS, использующую базу данных в качестве хранилища данных хранилища.

В Subversion есть такая модель ( Berkeley DB или файловая система ).
Он также имеет модель Copy-Modify-Merge , которая аналогична описанному механизму блокировки.

альтернативный текст http://svnbook.red -bean.com / nightly / ru / images / ch02dia4.png альтернативный текст http://svnbook.red -bean.com / nightly / en / images / ch02dia5.png

2 голосов
/ 01 июля 2010

Инструменты sql от redgate предлагают некоторые из этих функций, но не реализованы так, как вы описали. Например, Сравнение данных sql может сравнивать различия между данными в 2 базах данных, а также может использоваться Контроль исходного кода sql .

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

1 голос
/ 01 июля 2010

Какой сервер базы данных вы используете?Если вы используете MySQL и PHP, Doctrine имеет поведение «Версия», которое можно применить к модели.

Документация по этому поведению находится здесь:
http://www.doctrine -project.org / проекты / ОРМ / 1,2 / Docs / ручное / поведение / EN # сердечника поведения: versionable

0 голосов
/ 07 октября 2014

Это именно то, что делает мой продукт (да, я предвзятый :)). DBmaestro Teamwork делает.

  • Обеспечивает и отслеживает изменения структуры и содержания
  • Он предотвращает два параллельных изменения структуры или содержимого объекта на два (если они работают с одним и тем же объектом - то есть с одной и той же базой данных, с одной и той же схемой, ...)
  • В нем используется базовый анализ, основанный на понимании, который понимает природу изменения и знает, следует ли продвигать изменение или его следует игнорировать (как это было сделано из другой среды), или если есть конфликт И многое другое ...

Я бы посоветовал вам прочитать всесторонний, непредвзятый обзор решения для управления базами данных ветераном-экспертом по базам данных Беном Тейлором, который он разместил в LinkedIn https://www.linkedin.com/pulse/article/20140907002729-287832-solve-database-change-mangement-with-dbmaestro

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