eneance.MajimajiDBMYSQL
1.0.5
See the version list below for details.
dotnet add package eneance.MajimajiDBMYSQL --version 1.0.5
NuGet\Install-Package eneance.MajimajiDBMYSQL -Version 1.0.5
<PackageReference Include="eneance.MajimajiDBMYSQL" Version="1.0.5" />
paket add eneance.MajimajiDBMYSQL --version 1.0.5
#r "nuget: eneance.MajimajiDBMYSQL, 1.0.5"
// Install eneance.MajimajiDBMYSQL as a Cake Addin #addin nuget:?package=eneance.MajimajiDBMYSQL&version=1.0.5 // Install eneance.MajimajiDBMYSQL as a Cake Tool #tool nuget:?package=eneance.MajimajiDBMYSQL&version=1.0.5
MajimajiDBMYSQL
MajimajiDBMYSQL is a simple database changelog management system, for MYSQL (if you want to use MSSQL, you can use MajimajiDB nuget package).
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 MYSQL, and requires Serilog
Usage
Inside Startup.cs add this import:
using eneance.MajimajiDBMYSQL;
And add this line inside ConfigureServices():
public void ConfigureServices(IServiceCollection services)
{
...
services.AddHostedService<MajimajiDBMYSQL>();
...
}
And you are ready to go !
Configuration
Configuration is done through appsettings.json files, with this node:
"MajimajiDB": {
"AbsoluteChangelogPath": "[PATH TO CHANGELOG DIR]", // Absolute path of the directory containing changelogs (e.g *.sql files), default value is "../MajimajiDBMYSQL/changelogs"
"LocalChangelogPath": "[PATH TO CHANGELOG DIR]", // App run relative path of the directory containing changelogs (e.g *.sql files), default value is "../MajimajiDBMYSQL/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.Extensions.Configuration (>= 5.0.0)
- Microsoft.Extensions.Hosting (>= 5.0.0)
- Microsoft.Extensions.Logging (>= 5.0.0)
- MySql.Data (>= 8.3.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 directory reading, introduce relative or absolute directory