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.
///