Skip to content

Commit f0ddfca

Browse files
ipinakdroyad
authored andcommitted
allow to use an existing sql connection
Updated SqlConnectionManager and SqlServerExtensions to allow an existing SqlConnection to be used for migrating
1 parent 4140919 commit f0ddfca

2 files changed

Lines changed: 41 additions & 8 deletions

File tree

src/dbup-sqlserver/SqlConnectionManager.cs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System.Collections.Generic;
1+
using System.Collections.Generic;
22
using Microsoft.Data.SqlClient;
33
using DbUp.Engine.Transactions;
44
using DbUp.Support;
@@ -15,15 +15,21 @@ public class SqlConnectionManager : DatabaseConnectionManager
1515
/// </summary>
1616
/// <param name="connectionString"></param>
1717
public SqlConnectionManager(string connectionString)
18-
: base(new DelegateConnectionFactory((log, dbManager) =>
19-
{
20-
var conn = new SqlConnection(connectionString);
18+
: this(new SqlConnection(connectionString))
19+
{ }
2120

22-
if (dbManager.IsScriptOutputLogged)
23-
conn.InfoMessage += (sender, e) => log.LogInformation($"{{0}}", e.Message);
21+
/// <summary>
22+
/// Manages Sql Database Connections using an existing connection.
23+
/// </summary>
24+
/// <param name="connection">The existing SQL connection to use.</param>
25+
public SqlConnectionManager(SqlConnection connection)
26+
: base(new DelegateConnectionFactory((log, dbManager) =>
27+
{
28+
if (dbManager.IsScriptOutputLogged)
29+
connection.InfoMessage += (sender, e) => log.LogInformation($"{{0}}", e.Message);
2430

25-
return conn;
26-
}))
31+
return connection;
32+
}))
2733
{ }
2834

2935
/// <inheritdoc/>

src/dbup-sqlserver/SqlServerExtensions.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,19 @@ public static UpgradeEngineBuilder SqlDatabase(this SupportedDatabases supported
3131
return SqlDatabase(supported, connectionString, null);
3232
}
3333

34+
/// <summary>
35+
/// Creates an upgrader for SQL Server databases.
36+
/// </summary>
37+
/// <param name="supported">Fluent helper type.</param>
38+
/// <param name="connection">The sql connection.</param>
39+
/// <returns>
40+
/// A builder for a database upgrader designed for SQL Server databases.
41+
/// </returns>
42+
public static UpgradeEngineBuilder SqlDatabase(this SupportedDatabases supported, SqlConnection connection)
43+
{
44+
return SqlDatabase(supported, connection, null);
45+
}
46+
3447
/// <summary>
3548
/// Creates an upgrader for SQL Server databases.
3649
/// </summary>
@@ -62,6 +75,20 @@ public static UpgradeEngineBuilder SqlDatabase(this SupportedDatabases supported
6275
return supported.SqlDatabase(new SqlConnectionManager(connectionString), schema);
6376
}
6477

78+
/// <summary>
79+
/// Creates an upgrader for SQL Server databases.
80+
/// </summary>
81+
/// <param name="supported">Fluent helper type.</param>
82+
/// <param name="connection">The sql connection.</param>
83+
/// <param name="schema">The SQL schema name to use. Defaults to 'dbo'.</param>
84+
/// <returns>
85+
/// A builder for a database upgrader designed for SQL Server databases.
86+
/// </returns>
87+
public static UpgradeEngineBuilder SqlDatabase(this SupportedDatabases supported, SqlConnection connection, string schema)
88+
{
89+
return SqlDatabase(new SqlConnectionManager(connection), schema);
90+
}
91+
6592
/// <summary>
6693
/// Creates an upgrader for SQL Server databases.
6794
/// </summary>

0 commit comments

Comments
 (0)