sql >> Base de Datos >  >> RDS >> Database

Uso de la carpeta de trabajo para la base de datos de control de código fuente

Este artículo es un tutorial sobre cómo usar la opción de carpeta de trabajo del control de código fuente para administrar bases de datos de SQL Server.

En este artículo, también estoy subrayando algunos de los beneficios y limitaciones de usar una carpeta de trabajo en comparación con otras opciones disponibles para usar con el control de código fuente.

Analicemos algunos conceptos clave antes de profundizar en los detalles técnicos de este artículo.

Conceptos clave

¿Qué es el control de código fuente?

El control de código fuente es un sistema o (parte de las mejores prácticas de software) que realiza un seguimiento de todos los cambios en el código realizados por los desarrolladores.

Por qué se necesita el control de código fuente

El código de la aplicación escrito por los desarrolladores debe guardarse de vez en cuando de tal manera que todos los cambios realizados por cualquier desarrollador puedan no solo rastrearse sino también revertirse si es necesario.

Por esta razón, el código de la aplicación se pone bajo control de código fuente para asegurarse de que el historial de todos los cambios junto con los comentarios se mantenga bien, además hay muchos otros beneficios de usar el control de código fuente, que están más allá del alcance de este artículo.

Control de código fuente frente a control de versiones

No hay diferencia entre el control de código fuente y el control de versiones y, en su mayoría, estos dos términos se usan libremente de manera intercambiable.

¿Ponemos las bases de datos bajo control de código fuente?

Al igual que el código de la aplicación, los objetos de la base de datos, como tablas, vistas, procedimientos almacenados, etc., también deben tener un control de versión. Sin embargo, el método de poner los objetos de la base de datos bajo control de código fuente es ligeramente y, en algunos casos, completamente diferente de cuando el código de la aplicación se pone bajo control de código fuente.

Ejemplo de base de datos de control de versiones

Supongamos que crea una base de datos de muestra llamada "Autos" según los requisitos comerciales.

Luego, crea una tabla llamada "Car" con el CarId y Nombre del coche columnas para cumplir con otro requisito.

En su ausencia, a otro desarrollador se le asigna la tarea de agregar el CarType columna a la tabla "Coche".

Decide eliminar el CarName columna pensando que no es obligatorio y reemplácelo con el CarType columna.

Vuelve después de mucho tiempo y se sorprende al ver que su CarName la columna no solo falta, sino que también se reemplaza con CarType columna.

Ahora, no recuerda el tipo de datos original y la longitud que eligió para CarName a menos que pase por todo el conjunto de requisitos comerciales.

¡Espera un minuto! Este problema se puede resolver fácilmente si, en primer lugar, ha considerado usar el control de código fuente para su base de datos. Luego, puede ver fácilmente el primer cambio que haya realizado, que contiene la definición de la columna y luego el segundo cambio realizado por otro desarrollador.

Por lo tanto, usted y el otro desarrollador se sientan juntos y revisan los cambios históricos realizados en la base de datos (objeto) mediante el control de código fuente que realiza un seguimiento de cada cambio realizado por cualquier desarrollador en la base de datos.

Esto se ilustra de la siguiente manera:

Uso más importante del control de código fuente

Una de las principales razones para usar el control de código fuente es poder mantener varias versiones del código al mismo tiempo mediante la creación de las siguientes ramas del código:

  1. Dev (rama de desarrollo)
  2. Prueba (rama de prueba)
  3. Control de calidad (sucursal de control de calidad)
  4. Prod (rama de producción)

Los detalles técnicos de la creación de ramas de desarrollo, prueba, control de calidad y producción desde el control de código fuente están más allá del alcance de este artículo.

Requisitos

Este artículo es más adecuado para aquellos lectores que cumplan con los siguientes requisitos:

Conocimientos básicos de T-SQL

Debe tener algunos conocimientos básicos de T-SQL para crear, consultar y modificar objetos de bases de datos como tablas, vistas y procedimientos almacenados.

Herramientas de desarrollo de bases de datos

Debe tener SSMS (SQL Server Management Studio) o dbForge Studio para SQL Server instalado en su máquina para crear y administrar bases de datos y sus objetos.

Disponibilidad de la fuente de datos de la carpeta de trabajo

Aunque cualquier control de código fuente que ofrezca la opción de carpeta de trabajo está bien, se recomienda usar dbForge Source Control para seguir todos los pasos del tutorial de este artículo.

Control de fuente de la carpeta de trabajo

La carpeta de trabajo con funcionalidad limitada para los objetos de la base de datos de control de versiones se puede usar como otros sistemas de control de código fuente como TFS, Git, etc.

Una carpeta de trabajo simplemente contiene archivos de secuencias de comandos SQL que se utilizan para crear y administrar objetos de base de datos.

Cuándo usar Carpeta de trabajo

Suponga que desea crear una base de datos y sus objetos relacionados desde cero, pero aún no está seguro de qué control de código fuente utilizará su equipo en última instancia. Entonces es mejor comenzar con la opción de control de fuente de la carpeta de trabajo.

Otra razón podría ser cuando simplemente desea almacenar el estado actual de la base de datos y no está interesado en realizar un seguimiento de los cambios históricos, entonces la carpeta de trabajo es una buena candidata para usarse como control de fuente.

Limitación de la carpeta de trabajo

La carpeta de trabajo para los objetos de la base de datos de control de versiones está limitada en términos de mantener la versión más reciente de la base de datos y sus objetos y no hay forma de rastrear los cambios o revertirlos.

Por lo tanto, debe tener cuidado al usar Carpeta de trabajo como su opción de control de código fuente porque no puede mostrarle todos los cambios realizados en la base de datos y sus objetos de vez en cuando.

Tutorial:vinculación de la base de datos a la carpeta de trabajo

Repasemos los pasos para vincular su base de datos a una carpeta de trabajo mediante el control de código fuente.

Requisitos para agregar libro y tipo de libro

Ha recibido requisitos internos para crear una base de datos de prueba llamada "SQLBookShopV2" que contiene las siguientes dos tablas:

  1. Libro
  2. Tipo de libro

La base de datos no requiere necesariamente un control de fuente en este punto y no es importante realizar un seguimiento de todos los cambios realizados.

Consulta los requisitos

A menudo es una buena práctica verificar dos veces los requisitos antes de usar una carpeta de trabajo. Una carpeta de trabajo es más adecuada si se le pide que cree una base de datos con los siguientes requisitos:

  1. Se requiere base de datos de prueba o prototipo de base de datos
  2. El historial de cambios en la base de datos no es obligatorio
  3. Aún no se ha decidido qué control de código fuente se utilizará en última instancia

Configurar carpeta de trabajo

El primer paso es reservar una carpeta donde residirán los scripts de la base de datos de prueba después de comenzar a verificar el código de la base de datos en la carpeta de trabajo.

Cree una nueva carpeta llamada "SQLBookShopV2 Scripts" en C Drive.

Configurar la base de datos de ejemplo de SQLBookShopV2

Abra dbForge Studio para SQL Server y desde el menú Base de datos haga clic en "Nueva base de datos":

Escriba "SQLBookShopV2" en el nombre de la base de datos y haga clic en el botón "Aplicar cambios" en la parte inferior de la ventana:

Vincular la base de datos a la carpeta de trabajo

Es mejor vincular la base de datos con el control de código fuente justo después de crearlo.

Haga clic con el botón derecho en la base de datos (SQLBookShopV2) y seleccione Control de código fuente à Vincular base de datos al elemento de menú Control de código fuente:

Localice la carpeta de trabajo creada anteriormente para vincularla con la base de datos:

Puede elegir el modelo de desarrollo de base de datos que desee. Estamos eligiendo el modelo de desarrollo de base de datos compartida:

Compruebe el pequeño icono de control de código fuente junto a la base de datos que confirma que la base de datos se ha vinculado correctamente con el control de código fuente de la carpeta de trabajo:

Crear tabla de libros

Haga clic derecho en Tablas y luego haga clic en Nueva tabla y cree una tabla de libros usando el siguiente código y aplique los cambios:

CREATE TABLE SQLBookShopV2.dbo.Book (
  BookId INT IDENTITY
 ,BookTitle VARCHAR(50) NOT NULL
 ,Notes VARCHAR(200)
 ,CONSTRAINT PK_Book_BookId PRIMARY KEY CLUSTERED (BookId)
)
GO

Confirmar cambios en el código de la base de datos

Dado que hemos creado una nueva tabla en la base de datos, estos cambios locales deben ser recogidos por el control de código fuente para ser guardados.

Abra el Administrador de control de código fuente (que muestra los últimos cambios guardados) haciendo clic con el botón derecho en la base de datos y luego haga clic en Fuente à Mostrar administrador de control de código fuente

Haz clic en Confirmar para registrarse en el control de fuente de la carpeta de trabajo:

Comprobación de la carpeta de trabajo

Vaya a su carpeta de trabajo y vea el objeto de la tabla guardado allí como resultado de la última confirmación:

Crear tabla de tipo de libro

Cree otra tabla BookType usando el siguiente código:

CREATE TABLE SQLBookShopV2.dbo.BooKType (
  BookTypeId INT IDENTITY
 ,Name VARCHAR(50) NULL
 ,Detail VARCHAR(200) NULL
 ,CONSTRAINT PK_BooKType_BookTypeId PRIMARY KEY CLUSTERED (BookTypeId)
)
GO

Añadir tabla al control de código fuente

Agregue la tabla recién creada al control de fuente utilizando el mismo método que se mencionó anteriormente y luego verifique la carpeta de trabajo para ver si ambas tablas están allí:

¡Felicidades! Has vinculado con éxito tu base de datos al control de fuente de la carpeta de trabajo.

Precauciones con la carpeta de trabajo

Recuerde que una carpeta de trabajo en su forma pura como control de fuente es como una carpeta común de Windows y si se modifica externamente, ya no puede recordar su estado más reciente.

Por ejemplo, si eliminamos el código Book.sql de la carpeta de trabajo y luego verificamos si hay cambios usando Source Control Manager, tendríamos que agregar el código de la tabla Book nuevamente a la Carpeta de trabajo.

La responsabilidad de proteger la carpeta de trabajo recae sobre los hombros de los desarrolladores en lugar del código fuente (en su forma original), a menos que siga estrictamente la solución alternativa que ha demostrado ser exitosa.

Cosas que hacer

Ahora puede colocar fácilmente los objetos de su base de datos usando la opción de control de fuente Carpeta de trabajo:

  1. Intente crear otra base de datos vinculando el Libro tabla con el BookType tabla de tal manera que el BookTypeId clave principal del BookType la tabla se pasa como BookTypeId columna de clave externa en el Libro tabla después de usar el control de fuente de la carpeta de trabajo.
  2. Intente crear un procedimiento almacenado llamado AddBook para agregar un nuevo libro al Libro tabla después de vincular su base de datos con el control de fuente de la carpeta de trabajo.
  3. Intente crear una vista de base de datos Libros para ver la lista de todos los libros con sus tipos y verificar todos los cambios en el control de fuente Carpeta de trabajo.

Lecturas adicionales:

Seguimiento de cambios en la base de datos mediante el control de código fuente de la carpeta de trabajo

Herramienta útil:

dbForge Source Control:potente complemento de SSMS para administrar los cambios de la base de datos de SQL Server en el control de fuente.