Рекомендуемый рабочий процесс Redgate SQL Source Control для баз данных dev-test-live

Мы пытаемся начать работу с системой управления версиями SQL и у нас есть несколько вопросов.

Это то, к чему я стремлюсь. Похоже, это сработает?

  1. Изменить таблицы/процессы базы данных dev
  2. Зафиксировать ветку dev git на ПК разработчика
  3. Отправка изменений в центральное репо
  4. Повторите шаги 1-3 для каждого изменения
  5. Объединить ветку dev с веткой test
  6. Используйте SQL Source ConGtrol «Получить последнюю версию» в тестовой ветке
  7. Применить изменения к тестовой БД
  8. Повторите шаги 5–8, но из теста в жизнь

Примечание: - Использование модели разработки "Общая база данных".

Вопросы:

  • Похоже, это сработает?
  • Can SQL Source Control apply the changes to the test and live databases
    • or do I need to purchase a copy of SQL Compare for the dev server to perform this task?

введите здесь описание изображения


person Andy Joiner    schedule 10.10.2013    source источник
comment
Да, это сработает. Это, по сути, то, как мы это делаем.   -  person Ross Presser    schedule 10.10.2013
comment
Кажется, я не могу получить последнюю версию тестовой базы данных. Должна ли тестовая база данных использовать модель выделенной базы данных, но разработчик по-прежнему использует модель общей базы данных?   -  person Andy Joiner    schedule 14.10.2013
comment
Кажется, работает, теперь тестируем и живем на выделенной модели базы данных. Dev по-прежнему общий.   -  person Andy Joiner    schedule 14.10.2013


Ответы (3)


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

Есть несколько предложений по вашим вопросам (на мне шляпа Red Gate)

  • Обычно не рекомендуется подключать SQL Source Control к вашей реальной среде. Он опрашивает для поиска изменений, и это может быть не то, что вам нужно в вашей действующей системе. Вместо этого рекомендуется использовать SQL Compare для однократного развертывания в системах UAT/Production. В качестве альтернативы вас может заинтересовать продукт Red Gate Deployment Manager.

  • Вы спрашивали выше о режиме Shared/Dedicated в тесте. Не имеет значения, используете ли вы общую базу данных для своих разработчиков в ветке разработки, а затем выделенную модель в ветке тестирования. Если единственные изменения в тестовой базе данных происходят из одного места (например, ваши развертывания git), то, вероятно, лучше запускать эту базу данных в выделенном режиме.

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

Red Gate SQL Source Control Непрерывная доставка базы данных

person Jon    schedule 14.10.2013
comment
В настоящее время мы не используем CI-сервер, но это обсуждалось и находится в дорожной карте (пока нет временной шкалы). - person Andy Joiner; 14.10.2013

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

Если у вас есть какая-то система сборки, связанная с вашим репозиторием, вы, вероятно, могли бы автоматизировать последнюю часть, где она развертывается для тестирования, с использованием Пакет SQL Automation — например, что-то вроде TeamCity может быть запущено вами при выполнении слияния, а затем автоматически обновлять Test, чтобы вам не приходилось делать это вручную Это.

person James    schedule 10.10.2013
comment
Можете ли вы указать какую-либо информацию о новой версии сценариев миграции? - person Ben Thul; 11.10.2013
comment
Привет, Бен. Я сам еще не видел его как следует, но здесь есть информация: documentation.red-gate.com/display/MV2/Migrations+V2 и группу Google для отзывов/обсуждений: groups.google.com/forum/#!forum/red-gate-migrations - person James; 11.10.2013
comment
Именно то, что я искал. Спасибо! - person Ben Thul; 12.10.2013
comment
Миграции: также документ, опубликованный через 3 дня после этого вопроса о стеке: documentation.red-gate.com/display/MV2/ - person Andy Joiner; 14.10.2013

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

Red Gate не считает это лучшей практикой (вот почему). Они предпочитают, чтобы вы также приобрели SQL Compare.

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

Я предпочитаю это:

  • Developers connect using Shared model
    • then you can see who has modified each table/proc/etc.
  • We also keep a working folder on the dev server using shared model.
    • This allows us to use get-latest to update dev with patches from live.

Было бы проще, если бы выпущена функция смешанной модели (голосование здесь).

Схема, показывающая пути изменений

person Andy Joiner    schedule 16.10.2013