Skip to content

Executes migration scripts written in plain old SQL

License

Notifications You must be signed in to change notification settings

jchannon/PlainSql.Migrations

 
 

Repository files navigation

PlainSql.Migrations

Build status Coverage Status Conventional Commits

Execute migration scripts written in plain old SQL. Only executes each migration once.

Installation

dotnet add package PlainSql.Migrations

Usage

PlainSql.Migrations provide a script loader and a migrator that interact to load and execute migration scripts.

using PlainSql.Migrations;

private void ExecuteMigrations(string connectionString, string environment)
{
    using (var connection = new SqlConnection(connectionString))
    {
        connection.Open();

        var migrationScripts = MigrationScriptsLoader.FromDirectory("./MigrationScripts");

        Migrator.ExecuteMigrations(connection, migrationScripts);

        Console.Writeline("Executed database migration scripts");
    }
}

MigrationScriptsLoader.FromDirectory orders the migration scripts alphabetically (using System.StringComparer.InvariantCulture).

Database Support

  • SQLite
  • MS SQL
  • PostgreSQL

Concurrency

Migrations are executed in a single transaction with isolation level "Serializable". This usually means that executing migrations is concurrency-safe. For details on which SQL statements are supported by this transaction level, please refer to the documentation of your database technology.

About

Executes migration scripts written in plain old SQL

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%