Консультации по управлению версиями базы данных - PullRequest
2 голосов
/ 21 декабря 2011

Я ищу несколько советов по управлению версиями с нашими базами данных.

В настоящее время у нас есть несколько разработчиков, которые работают со своими собственными локальными версиями проектов веб-сайтов.

Эти веб-сайты также доступнычтобы клиент мог видеть его на промежуточном сервере.

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

Но в то же время, клиент изменил свою CMS на стадии подготовки.

Я читал о репликации SQL, это хорошая идея?Я думал, что всякий раз, когда вносится изменение в промежуточный сайт, оно будет реплицироваться на наш локальный сервер и обновлять эту базу данных.

В любом случае, мысли приветствуются.

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Что мы сделали, это добавили таблицу db_version с одним столбцом, чтобы после каждого изменения версия увеличивалась для отображения даты - 20101229, 20110305, 20110808, 201110808a и т. Д.

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

1 голос
/ 21 декабря 2011

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

Я бы предложил вносить изменения в базу данных в файлах, которые должна запускать каждая среда. Есть несколько, которые вы могли бы исследовать ликвидазу и dbdeploy

...