eneance.MajimajiDB
1.0.3
See the version list below for details.
dotnet add package eneance.MajimajiDB --version 1.0.3
NuGet\Install-Package eneance.MajimajiDB -Version 1.0.3
<PackageReference Include="eneance.MajimajiDB" Version="1.0.3" />
paket add eneance.MajimajiDB --version 1.0.3
#r "nuget: eneance.MajimajiDB, 1.0.3"
// Install eneance.MajimajiDB as a Cake Addin #addin nuget:?package=eneance.MajimajiDB&version=1.0.3 // Install eneance.MajimajiDB as a Cake Tool #tool nuget:?package=eneance.MajimajiDB&version=1.0.3
MajimajiDB
MajimajiDB is a simple database changelog management system, for SQL Server (further update will support other database systems).
It will apply SQL changelog, store in files (named with pattern *.sql), according to file names order. It is launched at application startup, and can be launched across multiple application nodes to ensure horizontal scalability.
Currently supporting only SQL Server, and requires Serilog
Usage
Inside Startup.cs add this import:
using eneance.MajimajiDB;
And add this line inside ConfigureServices():
public void ConfigureServices(IServiceCollection services)
{
...
services.AddHostedService<MajimajiDB>();
...
}
And you are ready to go !
Configuration
Configuration is done through appsettings.json files, with this node:
"MajimajiDB": {
"ChangelogPath": "[PATH TO CHANGELOG DIR]", // The path of the directory containing changelogs (e.g *.sql files), default value is "../MajimajiDB/changelogs"
"ConnectionString": "[CONNECTION STRING]", // The connection string, if not provided, then the default connection string is used
"RetryDelay": 1234, // if databse is locked by another process, the delay between 2 attempt to run, in milliseconds (default: 1000)
"RetryMaxNumber": 42 // if databse is locked by another process, the number of retry before killing the app (default: 60)
}
Running
Nothing to do ! Just provide changelogs as *.sql files...
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 | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | 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.1
- Microsoft.Data.SqlClient (>= 2.1.2)
- Microsoft.Extensions.Configuration (>= 5.0.0)
- Microsoft.Extensions.Hosting (>= 5.0.0)
- Microsoft.Extensions.Logging (>= 5.0.0)
- Serilog.AspNetCore (>= 4.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
- Fix issue when launching code on mac and windows: changelog names are different.
- Remove directory path from changelog name.
- Add transaction around changelog execution
- Only read *.sql files