Laxo.Database.Migrations 1.0.2

dotnet add package Laxo.Database.Migrations --version 1.0.2                
NuGet\Install-Package Laxo.Database.Migrations -Version 1.0.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Laxo.Database.Migrations" Version="1.0.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Laxo.Database.Migrations --version 1.0.2                
#r "nuget: Laxo.Database.Migrations, 1.0.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Laxo.Database.Migrations as a Cake Addin
#addin nuget:?package=Laxo.Database.Migrations&version=1.0.2

// Install Laxo.Database.Migrations as a Cake Tool
#tool nuget:?package=Laxo.Database.Migrations&version=1.0.2                

Laxo database migrations

Es una biblioteca de clases con el fin de poder ejecutar archivos .sql para las migraciones de una o más bases de datos sin importar el proveedor de esta.

Índice de contenido

  1. Instalación
  2. Inicio rápido
  3. Proveedores de bases de datos
  4. Nota
  5. Advertencia
  6. Contribuyendo
  7. Licencia

Instalación

Para la instalación abra la consola del administrador de paquetes en Visual Studio y escriba:

PM> Install-Package Laxo.Database.Migrations

O haga clic derecho en el proyecto → Administrar paquetes NuGet... → En línea → busque Laxo.Database.Migrations en la parte superior; también puedes usar el dotnet CLI con el siguiente comando.

dotnet add package Laxo.Database.Migrations

Inicio rápido

Debes indicar el proveedor de la base de datos mediante una clase y la ruta de la carpeta de los archivos a migrar.

using System.Data.SqlClient;
using Laxo.Database.Migrations;

string erroresSQLServer;
using (SqlConnection connection = new("Cadena de conexión")
{
    MigrateService migrateService = new(new MigrationGeneratorSQLServer(), connection);
    erroresSQLServer = await migrateService.ExecuteAsync("Ruta de la carpeta con los archivos .sql");
}
Console.Writeline(erroresSQLServer);

Al ejecutarse las migraciones en caso exista algún error, se retornará dicho error en la variable erroresSQLServer

Proveedores de bases de datos

Laxo.Database.Migrations pretende ser lo más independiente posible de la base de datos. Sin embargo, hay lugares donde se necesita que se le indique con que proveedor de base de datos va a interactuar.

Proveedores de bases de datos integrados

Los motores de base de datos admitidos actualmente son:

  • MSSQL:

        string erroresSQLServer;
        using (SqlConnection connection = new("Cadena de conexión")
        {
           MigrateService migrateService = new(new MigrationGeneratorSQLServer(), connection);
           erroresSQLServer = await migrateService.ExecuteAsync("Ruta de la carpeta con los archivos .sql");
        }
    
  • MySQL:

       string erroresMySQLServer;
       using (MySqlConnection connection = new("Cadena de conexión")
       {
          MigrateService migrateService = new(new MigrationGeneratorMySQL(), connection);
          erroresMySQLServer = await migrateService.ExecuteAsync("Ruta de la carpeta con los archivos .sql");
       }
    
  • PostgreSQL:

       string erroresPostgreSQL;
       using (NpgsqlConnection connection = new("Cadena de conexión")
       {
          MigrateService migrateService = new(new MigrationGeneratorPostgreSQL(), connection);
          erroresPostgreSQL = await migrateService.ExecuteAsync("Ruta de la carpeta con los archivos .sql");
       }
    

Nota

Laxo.Database.Migrations crea una tabla en la base de datos de nombre "__MigrationsHistory" e inserta los nombres de los archivos que se han ejecutado de manera correcta, con el uso de esta tabla puede saber qué archivos están pendientes de ejecutar.

Advertencia

Si el script a migrar tiene más de una instrucción a ejecutar, evite usar la palabra reservada "GO" para separarlos, como lo veremos en el siguiente ejemplo:

ALTER TABLE Tabla1
ADD Campo123 int
GO

ALTER TABLE Table2
ADD Campo321 int
GO

El ejemplo anterior no funcionará, para corregir esto debe de borrar todas las palabras "GO".

Contribuyendo

Los "pull requests" son bienvenidos. Para cambios importantes, abra primero un "discuss" para poder saber lo que le gustaría cambiar.

Licencia

MIT


Hecho con algo de amor y sueño 😁

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.1 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETCoreApp 3.1

    • No dependencies.
  • net6.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.2 118 3/16/2024
1.0.1 133 5/25/2023
1.0.0 165 1/31/2023

- Uso de .NET 8.0
- Validaciones en el código
- Correcciones en código y en el README.md