Модифицированная БД для использования с RoundHouse
Я смотрю на получение нашей базы данных в систему контроля версий. Я не могу найти никакой информации о лучшем способе модернизации существующих БД для использования с rh.
Я могу видеть созданные таблицы, я должен просто написать сценарий и добавить их в нашу базу данных, и все будет продолжаться? Или я должен получить копию базы данных и запустить rh с флагом восстановления? Похоже, что должны быть некоторые руководящие принципы этого.
Если у вас есть какие-либо идеи, пожалуйста, дайте мне знать.
Спасибо
2 ответа
Вы видели PowerUp? https://github.com/chucknorris/powerup
Это утилита для извлечения текущих элементов из базы данных в идемпотентный формат RoundhousE.
Что касается таблиц, вы можете написать их отдельно, а затем поместить в таблицу runAfterCreate.
В вики есть небольшое руководство - https://github.com/chucknorris/roundhouse/wiki/RoundhousEModes
Из того, что я понял, это предполагаемый рабочий процесс:
- Создайте полную резервную копию существующей базы данных.
Этот файл резервной копии является вашим базовым изображением. Переместите файл в общую папку с фиксированным местоположением. Исправлено означает, что полный путь не изменяется при обновлении базового образа до более новой версии (обычно сразу после успешного развертывания).
\\BuildServer\Data\Backups\LegacyDb.bak
- Используйте SSMS или PoweruP для сценариев объектов базы данных "В любое время" (хранимые процедуры, функции, представления и индексы) по одному объекту на файл. Переместите сценарии в каталоги с именами "sprocs", "functions", "views" и "indexes".
Обратите внимание, что на этом этапе нельзя создавать сценарии для объектов базы данных "Onetime".
Сделайте некоторую реальную работу, которая включает добавление сценариев Onetime или изменение сценариев Anytime. Возможно, добавьте новую таблицу и измените представление. Обновите ваши сценарии миграции соответственно.
Используйте режим "RunRestore", чтобы развернуть изменения в базе данных разработки и убедиться, что сценарии миграции работают так, как задумано.
В этом режиме существующая база данных заменяется базовым образом перед выполнением сценариев миграции. Восстановление резервной копии необходимо; в противном случае RH не выполнит сценарии миграции, которые ранее выполнялись, потому что информация о версии в базе данных разработки опережает базовую информацию. Вы абсолютно хотите иметь возможность вносить изменения и тестировать изменения в сценариях миграции, пока они находятся в стадии разработки.
- Когда вы почувствуете себя достаточно уверенно, используйте режим "Нормальный" для развертывания ваших изменений в производственной базе данных.
В этом режиме RH не восстанавливает никаких резервных копий перед выполнением сценариев миграции. Теоретически, ваша производственная база данных и базовый образ остались неизменными на протяжении всего спринта, поэтому восстановление резервной копии не требуется. Не говоря уже о том, что это, вероятно, уничтожит данные за недели / месяцы.
Если это первое развертывание, RH создаст 3 таблицы, которые он использует для хранения информации о своей версии для этой базы данных. Отныне информация о версии будет включена в ваше базовое изображение.
- Создать резервную копию базы данных.
Этот файл резервной копии является новым базовым образом для следующего спринта.