Введение
Процесс развертывания вручную для изменений базы данных является медленным и подвержен ошибкам. Кто-то записывает скрипт, отправляет его администратору базы данных и ожидает его запуска во время периода обслуживания. Если что-то идет не так, откат затруднён, потому что никто не отслеживал точное состояние схемы до изменения. Между тем разработчики, работающие над различными функциями, перезаписывают изменения друг друга, так как для кода базы данных нет структурированного рабочего процесса.
Представьте, что команда управляет приложением электронной коммерции в Базе данных SQL Azure. Три разработчика добавляют функции, требующие изменений схемы. Один добавляет новую таблицу категорий товаров, другой изменяет хранимые процедуры обработки заказов, а третий обновляет представления запроса клиента. Без системы контроля версий, потоков CI/CD и автоматического тестирования эти изменения сталкиваются. Исправление, применяемое непосредственно к рабочей среде, выходит из синхронизации с средой разработки. Развертывание перезаписывает исправление, вызывая сбой в производственной среде во время пиковых часов.
Проекты базы данных SQL и конвейеры CI/CD решают эти проблемы, обрабатывая код базы данных с той же строгостью, что и код приложения. Вы управляете всеми объектами, автоматизируете сборки и развертывания, обнаруживаете, когда динамическая база данных перемещается из проекта, и тестируете изменения, прежде чем они достигают рабочей среды.
После завершения этого модуля вы сможете:
- Создавайте, собирайте и проверяйте модели баз данных с помощью SQL Database Projects, в том числе в стиле SDK.
- Настройте систему контроля версий для проектов базы данных SQL и управляйте эталонными данными с помощью скриптов предразвертывания и постразвертывания.
- Управление ветвями, pull-запросами и разрешением конфликтов для кода базы данных.
- Обнаружение смещения схемы с помощью средств сравнения схем и SqlPackage.
- Реализуйте конвейеры CI/CD с помощью GitHub Actions и Azure DevOps, включая управление секретами и элементы управления развертыванием.
- Разработка и реализация стратегии тестирования с помощью модульных тестов и тестов интеграции.