From e96a5dcf5b027a16acad300fe0aa9fd1acda89c5 Mon Sep 17 00:00:00 2001 From: tengfei8771 <532050072@qq.com> Date: Wed, 23 Apr 2025 15:02:53 +0800 Subject: [PATCH 1/2] Enhance the behavior of obtaining default schema through database connection string by specifying the default schema through the SearchPath parameter in the connection string --- src/dbup-postgresql/PostgresqlExtensions.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/dbup-postgresql/PostgresqlExtensions.cs b/src/dbup-postgresql/PostgresqlExtensions.cs index 5aef97b..66ce93f 100644 --- a/src/dbup-postgresql/PostgresqlExtensions.cs +++ b/src/dbup-postgresql/PostgresqlExtensions.cs @@ -1,6 +1,7 @@ using System; using System.Data; using System.Security.Cryptography.X509Certificates; +using System.Text.RegularExpressions; using DbUp; using DbUp.Builder; using DbUp.Engine.Output; @@ -15,6 +16,7 @@ /// public static class PostgresqlExtensions { + private static readonly string pattern= @"(?i)SearchPath=([^;]+)"; /// /// Creates an upgrader for PostgreSQL databases. /// @@ -24,8 +26,21 @@ public static class PostgresqlExtensions /// A builder for a database upgrader designed for PostgreSQL databases. /// public static UpgradeEngineBuilder PostgresqlDatabase(this SupportedDatabases supported, string connectionString) - => PostgresqlDatabase(supported, connectionString, null); - + => PostgresqlDatabase(supported, connectionString, GetDefaultSchemaByConnectionString(connectionString)); + /// + /// Get connection string use parameter SearchPath for defaultSchema + /// + /// PostgreSQL database connection string. + /// + private static string GetDefaultSchemaByConnectionString(string connectionString) + { + Match match = Regex.Match(connectionString, pattern); + if (match.Success) + { + return match.Groups[1].Value; + } + return null; + } /// /// Creates an upgrader for PostgreSQL databases. /// From 5cabb5bd5c1c86163e013f4503245fe03731255d Mon Sep 17 00:00:00 2001 From: tengfei8771 <532050072@qq.com> Date: Wed, 10 Sep 2025 08:53:51 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1.=E6=94=AF=E6=8C=81searchpath=E5=92=8Csear?= =?UTF-8?q?ch=20path=E4=B8=A4=E7=A7=8D=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dbup-postgresql/PostgresqlExtensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dbup-postgresql/PostgresqlExtensions.cs b/src/dbup-postgresql/PostgresqlExtensions.cs index 66ce93f..094e9a8 100644 --- a/src/dbup-postgresql/PostgresqlExtensions.cs +++ b/src/dbup-postgresql/PostgresqlExtensions.cs @@ -16,7 +16,7 @@ /// public static class PostgresqlExtensions { - private static readonly string pattern= @"(?i)SearchPath=([^;]+)"; + private static readonly string pattern= @"(?i)Search\s?Path=([^;]+)"; /// /// Creates an upgrader for PostgreSQL databases. ///