diff --git a/Directory.Packages.props b/Directory.Packages.props index 2f9c1f84..03f7e323 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -151,6 +151,9 @@ + + + diff --git a/src/modules/persistence/Elsa.Persistence.Dapper/Elsa.Persistence.Dapper.csproj b/src/modules/persistence/Elsa.Persistence.Dapper/Elsa.Persistence.Dapper.csproj index eaeff69d..2fce2723 100644 --- a/src/modules/persistence/Elsa.Persistence.Dapper/Elsa.Persistence.Dapper.csproj +++ b/src/modules/persistence/Elsa.Persistence.Dapper/Elsa.Persistence.Dapper.csproj @@ -15,11 +15,11 @@ - + + - diff --git a/src/modules/persistence/Elsa.Persistence.Dapper/Features/DapperMigrationsFeature.cs b/src/modules/persistence/Elsa.Persistence.Dapper/Features/DapperMigrationsFeature.cs index 6659cf9a..6cebb614 100644 --- a/src/modules/persistence/Elsa.Persistence.Dapper/Features/DapperMigrationsFeature.cs +++ b/src/modules/persistence/Elsa.Persistence.Dapper/Features/DapperMigrationsFeature.cs @@ -15,26 +15,14 @@ namespace Elsa.Persistence.Dapper.Features; public class DapperMigrationsFeature(IModule module) : FeatureBase(module) { /// - /// Configures migrations to use SQLite. - /// - public DapperMigrationsFeature UseSqlite() - { - ConfigureRunner += runner => runner.AddSQLite(); - return this; - } - - /// - /// Configures migrations to use SQLite. - /// - public DapperMigrationsFeature UseSqlServer() - { - ConfigureRunner += runner => runner.AddSqlServer(); - return this; - } - - /// - /// Gets or sets a delegate to configure migrations. + /// Gets or sets a delegate used to configure the for Dapper migrations. /// + /// + /// The delegate must configure a database provider on the runner (for example by calling + /// AddSqlServer() or AddSQLite()) in addition to any other settings. + /// This replaces the removed UseSqlServer() and UseSqlite() convenience methods; + /// consumers migrating from those APIs should move their provider configuration into this delegate. + /// public Action ConfigureRunner { get; set; } = runner => runner .WithGlobalConnectionString(sp => sp.GetRequiredService().GetConnectionString()) .WithMigrationsIn(typeof(Initial).Assembly); diff --git a/src/workbench/Elsa.Server.Web/Elsa.Server.Web.csproj b/src/workbench/Elsa.Server.Web/Elsa.Server.Web.csproj index fa34185c..2e37fc91 100644 --- a/src/workbench/Elsa.Server.Web/Elsa.Server.Web.csproj +++ b/src/workbench/Elsa.Server.Web/Elsa.Server.Web.csproj @@ -25,6 +25,8 @@ + + diff --git a/src/workbench/Elsa.Server.Web/Program.cs b/src/workbench/Elsa.Server.Web/Program.cs index 02c1a9f7..af9a2e30 100644 --- a/src/workbench/Elsa.Server.Web/Program.cs +++ b/src/workbench/Elsa.Server.Web/Program.cs @@ -12,6 +12,7 @@ using Elsa.Identity.Multitenancy; using Elsa.OpenTelemetry.Middleware; using Elsa.Persistence.Dapper.Extensions; +using Elsa.Persistence.Dapper.Contracts; using Elsa.Persistence.Dapper.Services; using Elsa.Persistence.EFCore.Extensions; using Elsa.Persistence.EFCore.Modules.Alterations; @@ -53,6 +54,7 @@ using Elsa.Workflows.Runtime.Options; using Elsa.Workflows.Runtime.Stores; using Elsa.Workflows.Runtime.Tasks; +using FluentMigrator.Runner; using Hangfire; using Hangfire.MemoryStorage; using Hangfire.PostgreSql; @@ -128,10 +130,16 @@ { dapper.UseMigrations(feature => { - if (sqlDatabaseProvider == SqlDatabaseProvider.SqlServer) - feature.UseSqlServer(); - else - feature.UseSqlite(); + feature.ConfigureRunner = builder => + { + var runnerBuilder = sqlDatabaseProvider == SqlDatabaseProvider.SqlServer + ? builder.AddSqlServer() + : builder.AddSQLite(); + + runnerBuilder + .WithGlobalConnectionString(sp => sp.GetRequiredService().GetConnectionString()) + .WithMigrationsIn(typeof(Elsa.Persistence.Dapper.Migrations.Management.Initial).Assembly); + }; }); dapper.DbConnectionProvider = sp => {