Поделиться через


Интеграция системы контроля версий SQL базы данных в Microsoft Fabric

Применимо к:SQL database в Microsoft Fabric

В этом руководстве вы узнаете, как работать с базой данных SQL в Fabric с системой контроля версий через git-интеграцию Fabric.

SQL-база данных в Microsoft Fabric имеет интеграцию с системой контроля версий или "интеграцию Git", позволяя пользователям SQL отслеживать определения объектов базы данных с течением времени. Эта интеграция позволяет команде:

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

Схема простого цикла фиксации и обновления между рабочей базой данных и системой контроля версий.

Если вы не знакомы с git, вот несколько рекомендуемых ресурсов:

В этой статье представлен ряд полезных сценариев, которые можно использовать отдельно или в сочетании для управления процессом разработки с базой данных SQL в Fabric:

Сценарии, описанные в этой статье, рассматриваются в эпизоде программы Data Exposed. Посмотрите видео для обзора интеграции системы управления исходным кодом в Fabric.

Предварительные требования

Настройка

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

Инструкции по подключению рабочей области к репозиторию системы управления версиями см. в разделе Начало работы с интеграцией Git. Рабочая область может быть подключена к Azure DevOps или GitHub удаленному репозиторию.

Добавьте базу данных SQL Fabric в управление версиями

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

  1. Подключитесь к вашей базе данных SQL в редакторе SQL Fabric, в SQL Server Management Studio, в расширении MSSQL для Visual Studio Code или с помощью других внешних средств.
  2. Создайте таблицу, хранимую процедуру или другой объект в базе данных.
  3. ... Выберите меню для базы данных, выберите "Обновить состояние синхронизации Git".
  4. Нажмите кнопку "Управление версиями", чтобы открыть панель управления версиями.
  5. Установите флажок рядом с требуемой базой данных. Выберите Применить. Служба Fabric считывает определения объектов из базы данных и записывает их в удаленный репозиторий.
  6. Теперь можно просмотреть историю объектов базы данных в представлении исходного кода репозитория.

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

Обновление базы данных SQL Fabric из системы управления версиями

В этом сценарии вы создадите объекты базы данных в виде кода, используя расширение проектов SQL в VS Code, а затем зафиксируете файлы в системе управления версиями перед обновлением базы данных Fabric SQL с использованием интеграции с системой управления версиями. Этот сценарий предназначен для разработчиков, которые предпочитают работать в VS Code, имеют существующие приложения с помощью проектов SQL или имеют более сложные требования к конвейеру CI/CD.

  1. Убедитесь, что вы установили последний выпуск VS Code и расширения проектов mssql и SQL для VS Code.
  2. Создайте базу данных SQL в рабочей области и зафиксируйте ее в систему управления версиями без добавления объектов. На этом шаге в репозиторий добавляются пустые метаданные проекта SQL и элемента базы данных SQL.
  3. Клонируйте репозиторий системы контроля версий на локальную машину.
    • Если вы используете Azure DevOps, выберите контекстное меню ... для проекта управления исходным кодом. Выберите Clone, чтобы скопировать репозиторий Azure DevOps на локальный компьютер. Если вы не знакомы с Azure DevOps, обратитесь к руководству Code с использованием Git для Azure DevOps.
    • Если вы используете GitHub, нажмите кнопку Code в репозитории и скопируйте URL-адрес, чтобы клонировать репозиторий на локальный компьютер. Если вы не знакомы с GitHub, ознакомьтесь с руководством по клонированию репозитория.
  4. Откройте клонированную папку в Visual Studio Code. Ветвь, связанная с вашей рабочей областью, может не быть ветвью по умолчанию. В VS Code после переключения ветви должна появиться папка с именем <yourdatabase>.SQLDatabase.
  5. Создайте файл .sql для как минимум одной таблицы, которую вы хотите создать в базе данных, в структуре папок вашей базы данных. Файл должен содержать инструкцию CREATE TABLE для таблицы. Например, создайте файл с именем MyTable.sql в папке dbo/Tables со следующим содержимым:
    CREATE TABLE dbo.MyTable
    (
        Id INT PRIMARY KEY,
        ExampleColumn NVARCHAR(50)
    );
    
  6. Чтобы убедиться, что синтаксис действителен, можно проверить модель базы данных с помощью проекта SQL. После добавления файлов используйте представление "Проекты баз данных" в VS Code для создания проекта.
  7. После успешной сборки зафиксируйте файлы в системе управления версиями с помощью представления системы управления версиями в VS Code или предпочтительном локальном интерфейсе Git.
  8. Отправьте и синхронизируйте коммит в удалённый репозиторий. Убедитесь, что новые файлы появились в Azure DevOps или GitHub.
  9. Вернитесь к веб-интерфейсу Fabric и откройте панель управления версиями в рабочей области. Возможно, у вас уже есть оповещение о том, что у вас есть ожидающие изменения из Git. Нажмите кнопку "Обновить все", чтобы применить код из проекта SQL к базе данных.
    • После обновления вы можете заметить, что база данных сразу укажет, что она "Не зафиксирована". Это связано с тем, что функция интеграции Git напрямую сравнивает все содержимое файла, созданного для определения элемента, и возможны некоторые непреднамеренные различия. Одним из примеров являются встроенные атрибуты столбцов. В этих случаях необходимо зафиксировать изменения в системе управления версиями через интерфейс Fabric, чтобы синхронизировать определение с тем, что генерируется в рамках операции фиксации.
  10. После завершения обновления используйте средство подключения к базе данных. Объекты, добавленные в проект SQL, видимые в базе данных.

Примечание.

При внесении изменений в локальный проект SQL при возникновении синтаксической ошибки или использовании неподдерживаемых функций в Fabric обновление базы данных завершится ошибкой. Прежде чем продолжить, необходимо вручную отменить изменение в системе контроля версий.

Обновление базы данных SQL в Fabric через систему управления версиями объединяет сборку проекта SQL и публикацию с помощью SqlPackage. Сборка проекта SQL проверяет синтаксис файлов SQL и создает файл .dacpac. Операция публикации SqlPackage определила изменения, необходимые для обновления базы данных в соответствии с файлом .dacpac. Из-за упрощенного характера интерфейса Fabric к операции публикации SqlPackage применяются следующие параметры:

  • /p:ScriptDatabaseOptions = false
  • /p:DoNotAlterReplicatedObjects = false
  • /p:IncludeTransactionalScripts = true
  • /p:GenerateSmartDefaults = true

Управляемый источником проект SQL также можно клонировать на локальный компьютер для редактирования в VS Code, Visual Studio или других средствах проекта SQL. Проект SQL должен быть создан локально, чтобы проверить изменения перед фиксацией их в системе управления версиями.

Создать рабочую область ветки

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

  1. Завершите сценарий преобразования базы данных SQL Fabric в код в системе управления версиями.
    • У вас должна быть ветвь в репозитории системы управления версиями, которая содержит как проект SQL, так и метаданные объекта Fabric.
  2. В рабочей области Fabric откройте панель управления исходным кодом. На вкладке "Ветви" меню "Управление версиями" выберите "Создать ветку в новой рабочей области".
  3. Укажите имена создаваемой ветви и рабочей области. Ветка будет создана в репозитории системы контроля версий и заполнена содержимым состояния ветки, связанной с рабочей областью, из которой вы делаете ветвление. Рабочая область будет создана в Fabric.
  4. Перейдите в только что созданную рабочую область в Fabric. После завершения создания базы данных только что созданная база данных теперь содержит объекты, указанные в репозитории кода. Если открыть редактор запросов Fabric и перейти в обозреватель объектов, ваша база данных включает новые (пустые) таблицы и другие объекты.

Слияние изменений из одной ветви в другую

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

Создайте две рабочие области с связанными ветвями в одном репозитории, как описано в предыдущем сценарии.

  1. При использовании базы данных в вторичной ветви внесите изменения в объекты базы данных.
    • Например, измените существующую хранимую процедуру или создайте новую таблицу.
  2. Зафиксируйте эти изменения в системе управления версиями кнопкой Фиксация на панели системы управления версиями в Fabric.
  3. В Azure DevOps или GitHub создайте pull request из второстепенной ветки в основную.
    • В pull-запросе можно увидеть изменения в коде базы данных между основным рабочим пространством и вторичным рабочим пространством.
  4. После завершения pull request система управления версиями обновляется, но база данных в Fabric в основной рабочей области не изменяется. Чтобы изменить базу данных-источник, обновите основную рабочую область из системы управления версиями с помощью кнопки "Обновить " на панели управления версиями в Fabric.