MintPlayer.Spark.Migrations
11.0.0-preview.95
dotnet add package MintPlayer.Spark.Migrations --version 11.0.0-preview.95
NuGet\Install-Package MintPlayer.Spark.Migrations -Version 11.0.0-preview.95
<PackageReference Include="MintPlayer.Spark.Migrations" Version="11.0.0-preview.95" />
<PackageVersion Include="MintPlayer.Spark.Migrations" Version="11.0.0-preview.95" />
<PackageReference Include="MintPlayer.Spark.Migrations" />
paket add MintPlayer.Spark.Migrations --version 11.0.0-preview.95
#r "nuget: MintPlayer.Spark.Migrations, 11.0.0-preview.95"
#:package MintPlayer.Spark.Migrations@11.0.0-preview.95
#addin nuget:?package=MintPlayer.Spark.Migrations&version=11.0.0-preview.95&prerelease
#tool nuget:?package=MintPlayer.Spark.Migrations&version=11.0.0-preview.95&prerelease
MintPlayer.Spark.Migrations
One-time database migrations for MintPlayer.Spark.
Define a migration by implementing ISparkMigration on a non-abstract class and giving it a
static abstract long Version. Migrations run once, in version order, at startup — after
indexes are created and before the app serves requests.
using MintPlayer.Spark.Migrations;
using Raven.Client.Documents.Session;
public partial class M_202606081200_SeedDemo : ISparkMigration
{
public static long Version => 202606081200; // sortable timestamp; must be unique
public static string? Description => "Seed demo data";
[Inject] private readonly IAsyncDocumentSession session; // full scoped DI, like a cron job
public async Task UpAsync(CancellationToken cancellationToken)
{
await session.StoreAsync(new Company { Name = "Acme" }, cancellationToken);
await session.SaveChangesAsync(cancellationToken);
}
}
Enable it — the source generator discovers every ISparkMigration and emits AddMigrations():
builder.Services.AddSpark(builder.Configuration, spark =>
{
spark.UseContext<MyContext>();
spark.AddMigrations(); // generated; auto-discovers all migrations in this project
});
Or register manually:
spark.AddMigrations(m => m.AddMigration<M_202606081200_SeedDemo>());
Guarantees
- Run-once per database — each applied version writes a
SparkMigrationRecords/{version}marker document; a migration whose marker exists is skipped. - Ordered — migrations run ascending by
Version. - Multi-node safe — a cluster-wide RavenDB compare-exchange lock (
spark/migrations/lock, 30-minute lease) ensures only one node applies migrations at a time. - Fail-fast — a migration that throws aborts startup and is left unmarked, so it retries on the
next start. Call
SaveChangesAsyncyourself; the version marker is written only afterUpAsyncreturns successfully.
Forward-only (no Down) by design — migrations describe how the data moves forward.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net11.0 is compatible. |
-
net11.0
- MintPlayer.SourceGenerators.Attributes (>= 12.1.1)
- MintPlayer.Spark.Abstractions (>= 11.0.0-preview.95)
- RavenDB.Client (>= 7.2.6)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on MintPlayer.Spark.Migrations:
| Package | Downloads |
|---|---|
|
MintPlayer.Spark.Authorization
Optional authorization package for MintPlayer.Spark low-code framework. Provides group-based access control for PersistentObjects and Queries. |
|
|
MintPlayer.Spark.AllFeatures
All-in-one package for MintPlayer.Spark. References all Spark libraries and source-generates AddSparkFull/UseSparkFull/MapSparkFull convenience methods. |
|
|
MintPlayer.Spark.IdentityProvider
Self-contained OIDC Identity Provider for MintPlayer.Spark. Adds Authorization Code + PKCE flow with RavenDB storage. No external OIDC framework required. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 11.0.0-preview.95 | 120 | 10/4/2026 |
| 11.0.0-preview.94 | 61 | 10/4/2026 |
| 11.0.0-preview.93 | 57 | 10/2/2026 |
| 11.0.0-preview.92 | 58 | 10/2/2026 |
| 11.0.0-preview.91 | 62 | 9/29/2026 |
| 11.0.0-preview.90 | 55 | 9/27/2026 |
| 11.0.0-preview.89 | 52 | 9/27/2026 |
| 11.0.0-preview.88 | 60 | 9/26/2026 |
| 11.0.0-preview.84 | 61 | 9/24/2026 |
| 10.0.0-preview.84 | 61 | 9/21/2026 |
| 10.0.0-preview.83 | 64 | 9/19/2026 |
| 10.0.0-preview.82 | 72 | 9/17/2026 |
| 10.0.0-preview.81 | 67 | 9/15/2026 |
| 10.0.0-preview.80 | 71 | 9/10/2026 |
| 10.0.0-preview.79 | 74 | 9/9/2026 |
| 10.0.0-preview.78 | 69 | 9/9/2026 |
| 10.0.0-preview.77 | 67 | 9/9/2026 |
| 10.0.0-preview.76 | 68 | 9/9/2026 |
| 10.0.0-preview.75 | 67 | 9/7/2026 |
| 10.0.0-preview.74 | 72 | 9/7/2026 |