Compartir vía


Integración del control de código fuente de SQL Database en Microsoft Fabric

Aplica a:Base de datos SQL en Microsoft Fabric

En este tutorial, aprenderá a trabajar con la base de datos SQL en Fabric mediante el control de código fuente de integración de Git de Fabric.

Una base de datos SQL de Microsoft Fabric tiene integración de control de código fuente o "integración de Git" para que los usuarios puedan realizar un seguimiento de las definiciones de sus objetos de base de datos a lo largo del tiempo. Esta integración permite a un equipo:

  • Confirme la base de datos en el control de código fuente, que convierte automáticamente la base de datos activa en código en el repositorio de control de código fuente configurado (como Azure DevOps).
  • Actualizar los objetos de base de datos del contenido del control de código fuente, que valida el código en el repositorio de control de código fuente antes de aplicar un cambio diferencial a la base de datos.

Diagrama del ciclo de confirmación y actualización simple entre la base de datos en producción y el control de código fuente.

Si no está familiarizado con Git, estos son algunos recursos recomendados:

En este artículo se presenta una serie de escenarios útiles que puede usar individualmente o en combinación para administrar el proceso de desarrollo con SQL Database en Fabric:

Los escenarios de este artículo se tratan en un episodio de Datos expuestos. Vea el vídeo para obtener información general sobre la integración del control de código fuente en Fabric:

Nota:

La configuración de nivel de base de datos, como la intercalación y el nivel de compatibilidad, no se incluyen en la integración de canalizaciones de implementación y control de código fuente en este momento. Para la configuración de la base de datos que puede establecer mediante T-SQL después de la creación de la base de datos, puede modificar la base de datos con scripts después de la implementación.

Requisitos previos

Configuración

Esta conexión de repositorio se aplica en el nivel de área de trabajo, de modo que una sola rama del repositorio esté asociada a esa área de trabajo. El repositorio puede tener varias ramas, pero solo el código de la rama seleccionada en la configuración del área de trabajo afecta directamente al área de trabajo.

Para conocer los pasos para conectar el área de trabajo a un repositorio de control de código fuente, consulte Introducción a la integración de Git. El área de trabajo se puede conectar a un repositorio remoto de Azure DevOps o GitHub.

Adición de la base de datos SQL de Fabric al control de código fuente

En este escenario, se hace un commit de los objetos de base de datos en el control de código fuente. Es posible que esté desarrollando una aplicación en la que va a crear objetos directamente en una base de datos de prueba y realizar un seguimiento de esa base de datos en el control de código fuente, al igual que el código de la aplicación. Como resultado, tiene acceso al historial de las definiciones de objetos de base de datos y puede usar conceptos de Git como la bifurcación y la combinación para personalizar el proceso de desarrollo.

  1. Conéctate a tu base de datos SQL en el editor Fabric SQL, SQL Server Management Studio, la extensión MSSQL para Visual Studio Code u otras herramientas externas.
  2. Cree una tabla, un procedimiento almacenado u otro objeto en la base de datos.
  3. Seleccione el botón Control de código fuente para abrir el panel Control de código fuente.
  4. Active la casilla situada junto a la base de datos deseada. Seleccione Confirmar. El servicio Fabric lee las definiciones de objeto de la base de datos y las escribe en el repositorio remoto.
  5. Ahora puede ver el historial de objetos de base de datos en la vista de origen del repositorio de código.

A medida que sigue editando la base de datos, incluida la edición de objetos existentes, confirme esos cambios en el control de código fuente siguiendo los pasos anteriores.

Archivo SQL de proyecto

El archivo de proyecto SQL del repositorio de control de código fuente contiene metadatos sobre la base de datos. La integración del control de código fuente de Fabric usa este archivo para incorporar más funcionalidad al control de código fuente y a las canalizaciones de implementación. La integración del control de código fuente de Fabric genera y actualiza automáticamente el archivo del proyecto. Evite las modificaciones manuales en el archivo del proyecto porque la integración del control de código fuente de Fabric sobrescribe las modificaciones del archivo del proyecto en la siguiente confirmación de Fabric. Sin embargo, si desea compilar un proyecto de SQL localmente mediante herramientas de SQL como SQL Server Management Studio o la extensión de proyectos de SQL para Visual Studio Code, puede agregar una referencia al archivo en el master.dacpac archivo de proyecto.

La integración de Fabric con proyectos sql agrega estas propiedades de metadatos al archivo de proyecto:

La funcionalidad de referencias de objetos del sistema se configura automáticamente sin que se requiera ninguna acción. El editor de consultas de Fabric proporciona scripts previos a la implementación y posteriores a la implementación en la carpeta Consultas compartidas .

Actualizar la base de datos SQL de Fabric desde el control de código fuente

En este escenario, primero creará objetos de base de datos como código en la extensión de proyectos de SQL en Visual Studio Code. Luego, enviará los archivos al control de versiones antes de actualizar la base de datos SQL de Fabric desde la integración con el control de versiones. Este escenario está dirigido a desarrolladores que prefieren trabajar en Visual Studio Code, tienen aplicaciones existentes mediante proyectos de SQL o tienen requisitos de canalización de CI/CD más avanzados.

  1. Asegúrese de instalar la versión más reciente de Visual Studio Code y las extensiones de proyectos MSSQL y SQL para Visual Studio Code.
  2. Cree una nueva base de datos SQL en el área de trabajo y confírmela en el control de código fuente sin agregar ningún objeto. Este paso agrega los metadatos vacíos del proyecto SQL y del elemento de base de datos SQL al repositorio.
  3. Clonar el repositorio de control de código fuente en la máquina local.
    • Si usa Azure DevOps, seleccione el menú contextual ... para el proyecto de control de código fuente. Seleccione Clone para copiar el repositorio de Azure DevOps en la máquina local. Si no está familiarizado con Azure DevOps, consulte la guía Code con git para Azure DevOps.
    • Si usa GitHub, seleccione el botón Code en el repositorio y copie la dirección URL para clonar el repositorio en la máquina local. Si no está familiarizado con GitHub, consulte la guía cloning a repository.
  4. Abra la carpeta clonada en Visual Studio Code. Es posible que la rama asociada al área de trabajo no sea la predeterminada. Debería ver una carpeta denominada <yourdatabase>.SQLDatabase en Visual Studio Code después de cambiar la rama.
  5. Cree un .sql archivo para al menos una tabla que desee crear en la base de datos dentro de la estructura de carpetas de la base de datos. El archivo debe contener la instrucción CREATE TABLE para la tabla. Por ejemplo, cree un archivo JSON denominado MyTable.sql en la carpeta dbo/Tables con el siguiente contenido:
    CREATE TABLE dbo.MyTable
    (
        Id INT PRIMARY KEY,
        ExampleColumn NVARCHAR(50)
    );
    
  6. Para asegurarse de que la sintaxis es válida, valide el modelo de base de datos con el proyecto SQL. Después de agregar los archivos, use la vista Proyectos de base de datos en Visual Studio Code para compilar el proyecto.
  7. Después de una compilación correcta, confirme los archivos en el control de código fuente mediante la vista de control de código fuente en Visual Studio Code o la interfaz git local preferida.
  8. Inserte o sincronice la confirmación en el repositorio remoto. Compruebe que los nuevos archivos aparecen en Azure DevOps o GitHub.
  9. Vuelva a la interfaz web de Fabric y abra el panel Control de código fuente en el área de trabajo. Es posible que ya tenga una alerta acerca de que "tiene cambios pendientes en Git". Seleccione el botón Actualizar (actualizar todo) para aplicar el código del proyecto SQL a la base de datos.
    • Es posible que vea que la base de datos indica inmediatamente que está "No comprometida" después de la actualización. Este estado se produce porque la característica de integración de Git hace una comparación directa de todo el contenido de los archivos generados para una definición de elemento, y es posible que haya algunas diferencias no intencionales. Un ejemplo son los atributos en línea en columnas. En estos casos, debe volver a confirmar el control de código fuente en la interfaz web de Fabric para sincronizar la definición con lo que se genera como parte de una operación de confirmación.
  10. Una vez completada la actualización, use una herramienta de su elección para conectarse a la base de datos. Los objetos que agregó al proyecto SQL están visibles en la base de datos.

Nota:

Al realizar cambios en el proyecto SQL local, si se produce un error de sintaxis o el uso de características no admitidas en Fabric, se produce un error en la actualización de la base de datos. Debe revertir manualmente el cambio en el control de código fuente para poder continuar.

La actualización de una base de datos SQL en Fabric desde el control de código fuente combina la compilación de un proyecto SQL y la operación de publicación con SqlPackage. La compilación del proyecto SQL valida la sintaxis de los archivos SQL y genera un archivo .dacpac. La operación de publicación sqlPackage determina los cambios necesarios para actualizar la base de datos para que coincida con el .dacpac archivo. Debido a la naturaleza simplificada de la interfaz fabric, se aplican las siguientes opciones a la operación de publicación de SqlPackage:

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

También puede clonar el proyecto SQL controlado por código fuente en la máquina local para su edición en Visual Studio Code, SQL Server Management Studio u otras herramientas de proyecto de SQL. Compile el proyecto de SQL localmente para validar los cambios antes de confirmarlos en el control de código fuente.

Crear un área de trabajo de rama

En este escenario, configurará un nuevo entorno de desarrollo en Fabric mediante la creación de un conjunto duplicado de recursos basado en la definición de control de código fuente. La base de datos duplicada incluye los objetos de base de datos que ha registrado en el sistema de control de versiones. Este escenario es para los desarrolladores que continúan su ciclo de vida de desarrollo de aplicaciones en Fabric y usan la integración del control de código fuente de Fabric.

  1. Complete el escenario convertir la base de datos SQL de Fabric en código en el sistema de control de código fuente.
    • Debe tener una rama en un repositorio de control de código fuente con un proyecto de SQL y los metadatos del objeto Fabric.
  2. En el área de trabajo de Fabric, abra el panel de control de código fuente. En la pestaña Ramas del menú Control de código fuente, seleccione Crear rama en un nuevo espacio de trabajo.
  3. Especifique los nombres de la rama y el área de trabajo que se van a crear. La rama se crea en el repositorio de control de código fuente y se rellena con el contenido confirmado de la rama asociada al área de trabajo desde la que se va a bifurcar. El área de trabajo se crea en Fabric.
  4. Vaya al área de trabajo recién creada en Fabric. Cuando se completa la creación de la base de datos, la base de datos recién creada contiene ahora los objetos especificados en el repositorio de código. Si abre el editor de consultas de Fabric y navega en el Explorador de objetos, la base de datos tiene tablas nuevas (vacías) y otros objetos.

Combinar los cambios de una rama en otra

En este escenario, usará el repositorio de control de código fuente para revisar los cambios de la base de datos antes de que estén disponibles para la implementación. Este escenario es para los desarrolladores que trabajan en un entorno de equipo y usan el control de código fuente para administrar los cambios de la base de datos.

Cree dos áreas de trabajo con ramas asociadas en el mismo repositorio, tal como se describe en el escenario anterior.

  1. En la base de datos de la rama secundaria, haga cambios en los objetos de la base de datos.
    • Por ejemplo, modifique un procedimiento almacenado existente o cree una nueva tabla.
  2. Compruebe estos cambios en el control de código fuente mediante el botón Confirmar del panel de control de código fuente de Fabric.
  3. En Azure DevOps o GitHub, cree una solicitud de incorporación de cambios de la rama secundaria a la rama principal.
    • En la solicitud de incorporación de cambios, puede ver los cambios en el código de la base de datos entre el área de trabajo principal y el área de trabajo secundaria.
  4. Una vez completada la solicitud de incorporación de cambios, el control de código fuente se actualiza, pero la base de datos de Fabric en el área de trabajo principal no cambia. Para cambiar la base de datos principal, actualice el área de trabajo principal del control de código fuente mediante el botón Actualizar del panel de control de código fuente de Fabric.

Administración de datos estáticos con un script posterior a la implementación

En este escenario, controlará las filas de una tabla de búsqueda de la base de datos con control de código fuente. La funcionalidad que habilita esta funcionalidad, scripts previos a la implementación y posteriores a la implementación, también se aplica a las canalizaciones de implementación, por lo que puede usar los mismos scripts para administrar datos estáticos en ambos escenarios.

  1. Desde una base de datos SQL de Fabric conectada al control de código fuente, identifique o cree una tabla para la que desea administrar datos estáticos. Por ejemplo, es posible que tenga una dbo.Colors tabla que use la aplicación y que tenga un conjunto conocido de valores que no cambien con frecuencia.

  2. Cree una nueva consulta en el editor de base de datos SQL en Fabric. En el editor de consultas, agregue una MERGE instrucción para administrar el contenido de la Colors tabla. Por ejemplo:

    MERGE dbo.Colors AS target
    USING (VALUES
        (1, 'Red'),
        (2, 'Green'),
        (3, 'Blue')
    ) AS source (Id, Name)
    ON target.Id = source.Id
    WHEN MATCHED THEN
        UPDATE SET Name = source.Name
    WHEN NOT MATCHED BY TARGET THEN
        INSERT (Id, Name) VALUES (source.Id, source.Name)
    WHEN NOT MATCHED BY SOURCE THEN
        DELETE;
    
  3. Cambie el nombre de la consulta a Post-Deployment-StaticData.sql y muévala a Consultas compartidas.

  4. Una vez en Consultas compartidas, seleccione el menú ... de la consulta y seleccione Establecer como script posterior a la implementación.

Esta consulta se ejecuta automáticamente como parte de cualquier actualización desde el sistema de control de versiones o en la canalización de despliegue, por lo que puede administrar los datos estáticos en la tabla Colors mediante el control de versiones. Puede editar la consulta en el editor de consultas de Fabric y confirmar los cambios en el control de código fuente para administrar los cambios en los datos estáticos a lo largo del tiempo. Además, dado que los scripts previos a la implementación y posteriores a la implementación se incluyen en el proyecto de SQL, también puede editar la consulta desde el equipo local mediante Visual Studio Code u otras herramientas de proyecto de SQL y, a continuación, confirmar esos cambios en el control de código fuente. Obtenga más información sobre los scripts previos a la implementación y posteriores a la implementación en la documentación de proyectos de SQL.