Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
msleg Member Откуда: Москва Сообщений: 564 |
Коллеги привет. Поделитесь вашей практикой. Как правильно организовать перенос изменений из тестовой бд в боевую. Ситуация следующая - есть 2 сервера. На одном находится боевая база, на втором такая же тестовая. Каждый день в боевую подгружаются данные. Как правильно переносить изменения из тестовой в боевую (изменения структуры) и как обновлять данными тестовую? |
21 сен 17, 11:13 [20811403] Ответить | Цитировать Сообщить модератору |
msLex Member Откуда: Сообщений: 8699 |
SSDT, TFS, отдельные ветки кода для тестовой и боевой, перенос уже протестированного функционала из одной ветки в другую merga-ми на уровне change set-ов. |
||
21 сен 17, 11:56 [20811676] Ответить | Цитировать Сообщить модератору |
Дедушка Member Откуда: Город трёх революций Сообщений: 5114 |
- обновление боевой только скриптами миграции (create\alter + сохранение данных во временных таблицах и переливка назад после обновления, если нужно) скрипт получать из TFS или каждый разработчик пишет свой маленький скриптик под конкретную таску, перед релизом все эти скриптики собираются в один. - обновление теста с прода через поднятие бэкапа прода (если фулл нет возможности, то дифф или лога) далее накатываете скрипт миграции (заодно проверяя, что он вольётся без инцидентов) |
21 сен 17, 12:39 [20811869] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4807 |
msleg, Перенос скрипта в боевую базу это процесс, который никак не должен делаться автоматически. 1) Должен быть подготовлен скритп для развертывания. Все должно быть проверено и просмотрено глазами. 2) Желательно взять бекап боевой базы , развернуть его на тестовом сервере и накатить скрипт на него. Это даст некоторое представление о времени развертывания. Потому что изменение колонок в огромных таблицах могут занять долгое время или не закончиться вообще. Возможно надо будет создать вторую таблицу перенести туда данные, переименовать назад. Возможно будут другие проблемы, которых вы не увидите на тестовой БД. 3) На боевой БД необходимо объявить даунтайм, если надо. Остановить софт, который работает с БД, предупредить владельцев контактирующих с БД систем. |
21 сен 17, 12:49 [20811920] Ответить | Цитировать Сообщить модератору |
MSSQLAndDotNet Member Откуда: Сообщений: 10398 |
вообще говоря visual studio умеет сравнивать проекты и базы и рендерить скрипт но эт конечно не очень вариант ИМХО хотя, почему бы нет |
22 сен 17, 09:32 [20814507] Ответить | Цитировать Сообщить модератору |
Nimua Member Откуда: Ростов-на-Дону Сообщений: 344 |
Пользуемся RedGate SQL Compare, и также подготавливается скрипты миграции. Все равно надо смотреть что он там негенерил, для больших таблиц обычно приходится писать руками, также если например у вас в разработческой базе есть индекс, который был и в боевой, и в него добавили новое поле, то сгенерируется дроп индекса и создание нового, что при нагруженной системе вызовет проблему. |
23 сен 17, 14:39 [20817995] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |