From 3140b72e15e9ab06c316e3fafe8dd44f2b1bc760 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Tue, 19 Mar 2024 11:38:51 +0100 Subject: [PATCH] Add Postgres support to Elsa.Server.Web Introduced support for PostgreSQL in the Elsa Server configuration and updated the docker-compose to reflect the new database option. Adjusted the dependencies to include the EntityFrameworkCore PostgreSQL project reference. --- docker-compose.yml | 2 +- src/bundles/Elsa.Server.Web/Elsa.Server.Web.csproj | 1 + src/bundles/Elsa.Server.Web/Program.cs | 10 ++++++++++ src/bundles/Elsa.Server.Web/appsettings.json | 1 + src/modules/Elsa.Scheduling/Activities/Cron.cs | 2 +- 5 files changed, 14 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index d76a08a4b..266587c9a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -45,7 +45,7 @@ services: environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgrespw - POSTGRES_DB: elsa + POSTGRES_DB: postgres ports: - "5432:5432" volumes: diff --git a/src/bundles/Elsa.Server.Web/Elsa.Server.Web.csproj b/src/bundles/Elsa.Server.Web/Elsa.Server.Web.csproj index f667f266a..8c904e790 100644 --- a/src/bundles/Elsa.Server.Web/Elsa.Server.Web.csproj +++ b/src/bundles/Elsa.Server.Web/Elsa.Server.Web.csproj @@ -8,6 +8,7 @@ + diff --git a/src/bundles/Elsa.Server.Web/Program.cs b/src/bundles/Elsa.Server.Web/Program.cs index 0febc9106..05b7613bb 100644 --- a/src/bundles/Elsa.Server.Web/Program.cs +++ b/src/bundles/Elsa.Server.Web/Program.cs @@ -24,6 +24,7 @@ using Proto.Persistence.SqlServer; const bool useMongoDb = false; const bool useSqlServer = false; +const bool usePostgres = false; const bool useDapper = false; const bool useProtoActor = false; const bool useHangfire = false; @@ -39,6 +40,7 @@ var identitySection = configuration.GetSection("Identity"); var identityTokenSection = identitySection.GetSection("Tokens"); var sqliteConnectionString = configuration.GetConnectionString("Sqlite")!; var sqlServerConnectionString = configuration.GetConnectionString("SqlServer")!; +var postgresConnectionString = configuration.GetConnectionString("PostgreSql")!; var mongoDbConnectionString = configuration.GetConnectionString("MongoDb")!; var azureServiceBusConnectionString = configuration.GetConnectionString("AzureServiceBus")!; var rabbitMqConnectionString = configuration.GetConnectionString("RabbitMq")!; @@ -88,6 +90,8 @@ services { if (useSqlServer) ef.UseSqlServer(sqlServerConnectionString!); + else if (usePostgres) + ef.UsePostgreSql(postgresConnectionString!); else ef.UseSqlite(sqliteConnectionString); }); @@ -110,6 +114,8 @@ services { if (useSqlServer) ef.UseSqlServer(sqlServerConnectionString!); + else if (usePostgres) + ef.UsePostgreSql(postgresConnectionString!); else ef.UseSqlite(sqliteConnectionString); }); @@ -128,6 +134,8 @@ services { if (useSqlServer) ef.UseSqlServer(sqlServerConnectionString!); + else if (usePostgres) + ef.UsePostgreSql(postgresConnectionString!); else ef.UseSqlite(sqliteConnectionString); }); @@ -207,6 +215,8 @@ services { if (useSqlServer) ef.UseSqlServer(sqlServerConnectionString); + else if (usePostgres) + ef.UsePostgreSql(postgresConnectionString); else ef.UseSqlite(sqliteConnectionString); }); diff --git a/src/bundles/Elsa.Server.Web/appsettings.json b/src/bundles/Elsa.Server.Web/appsettings.json index 396e4e0bd..c70ae9518 100644 --- a/src/bundles/Elsa.Server.Web/appsettings.json +++ b/src/bundles/Elsa.Server.Web/appsettings.json @@ -15,6 +15,7 @@ "AllowedHosts": "*", "ConnectionStrings": { "Sqlite": "Data Source=App_Data/elsa.sqlite.db;Cache=Shared;", + "PostgreSql": "Server=localhost;Username=postgres;Database=elsa;Port=5432;Password=postgrespw;SSLMode=Prefer", "MongoDb": "mongodb://localhost:27017/elsa-workflows", "AzureServiceBus": "", "RabbitMq": "amqp://guest:guest@localhost:5672" diff --git a/src/modules/Elsa.Scheduling/Activities/Cron.cs b/src/modules/Elsa.Scheduling/Activities/Cron.cs index c907c9d89..fdccc7c9b 100644 --- a/src/modules/Elsa.Scheduling/Activities/Cron.cs +++ b/src/modules/Elsa.Scheduling/Activities/Cron.cs @@ -1,4 +1,4 @@ -using System.Runtime.CompilerServices; +using System.Runtime.CompilerServices; using Elsa.Extensions; using Elsa.Scheduling.Bookmarks; using Elsa.Scheduling.Contracts;