KingMigrations 2.0.0

dotnet add package KingMigrations --version 2.0.0
NuGet\Install-Package KingMigrations -Version 2.0.0
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="KingMigrations" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add KingMigrations --version 2.0.0
#r "nuget: KingMigrations, 2.0.0"
#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 KingMigrations as a Cake Addin
#addin nuget:?package=KingMigrations&version=2.0.0

// Install KingMigrations as a Cake Tool
#tool nuget:?package=KingMigrations&version=2.0.0

KingMigrations

A really lightweight and simple database migration library. This is not intended to compete with the more advanced migration frameworks; rather, it's just for when you want something very small and very simple to handle some basic database migrations.

Packages

A quick example

  1. Create a migration script (001.sql):
-- Id: 1
-- Description: The first example migration script.

create table table_1 (id integer primary key, value text not null);
create table table_2 (id integer primary key, value text not null);
  1. Create another migration script (002.sql):
-- Id: 2
-- Description: The second example migration script.

create table table_3 (id integer primary key, value text not null);
create table table_4 (id integer primary key, value text not null);
  1. Run the migrations:
var migrationApplier = new SqliteMigrationApplier();
var migrationSource = new DirectoryMigrationSource("/path/to/your/migration/directory");
migrationSource.AddParser(".sql", new SemicolonDelimitedMigrationParser());

using var connection = InitializeYourSqliteDatabaseConnectionHere();
await connection.OpenAsync();
await migrationApplier.ApplyMigrationsAsync(connection, migrationSource);

Breaking changes from v1 to v2

In v2, I've tried to align the migration table with FluentMigrator (so that users can swap from this library to FluentMigrator, or from FluentMigrator to this library, without too much effort). As a result, the following breaking changes are present:

  • Migration table now stores ID as bigint instead of int, to support the "timestamp as ID" convention that is present in both FluentMigrator and EFCore.
  • Migration table now stores timestamp as a UTC datetime / timestamp / etc. instead of datetimeoffset / timestamp with time zone / etc.
  • Migration applier no longer checks for IDs in a strict sequence (1, 2, 3, etc.), but rather will simply apply all migration that are newer than the most recently applied migration.

Copyright Matthew King. Distributed under the MIT License. Refer to license.txt for more information.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 was computed.  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 netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on KingMigrations:

Package Downloads
KingMigrations.Sqlite

SQLite migrator for KingMigrations.

KingMigrations.SqlServer

SQL Server migrator for KingMigrations.

KingMigrations.PostgreSql

PostgreSQL migrator for KingMigrations.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 174 3/3/2024
1.3.0 352 11/2/2023
1.1.0 301 10/21/2023
1.0.0 563 1/10/2023
1.0.0-alpha.1639735796 128 12/17/2021
1.0.0-alpha.1639710136 128 12/17/2021