KingMigrations 2.0.0
dotnet add package KingMigrations --version 2.0.0
NuGet\Install-Package KingMigrations -Version 2.0.0
<PackageReference Include="KingMigrations" Version="2.0.0" />
paket add KingMigrations --version 2.0.0
#r "nuget: KingMigrations, 2.0.0"
// 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
- 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);
- 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);
- 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 ofint
, 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 ofdatetimeoffset
/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.
License and copyright
Copyright Matthew King. Distributed under the MIT License. Refer to license.txt for more information.
Product | Versions 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. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on KingMigrations:
Package | Downloads |
---|---|
KingMigrations.SqlServer
SQL Server migrator for KingMigrations. |
|
KingMigrations.Sqlite
SQLite 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 | 264 | 3/3/2024 |
1.3.0 | 418 | 11/2/2023 |
1.1.0 | 363 | 10/21/2023 |
1.0.0 | 632 | 1/10/2023 |
1.0.0-alpha.1639735796 | 138 | 12/17/2021 |
1.0.0-alpha.1639710136 | 139 | 12/17/2021 |