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