diff --git a/src/Simple.Migrations.IntegrationTests/Mssql/MssqlTests.cs b/src/Simple.Migrations.IntegrationTests/Mssql/MssqlTests.cs index aac1b3f..c5a15f7 100644 --- a/src/Simple.Migrations.IntegrationTests/Mssql/MssqlTests.cs +++ b/src/Simple.Migrations.IntegrationTests/Mssql/MssqlTests.cs @@ -18,9 +18,9 @@ public class MssqlTests : TestsBase protected override bool SupportConcurrentMigrators => true; - protected override DbConnection CreateConnection() => new SqlConnection(ConnectionStrings.MSSQL); + protected override IDbConnection CreateConnection() => new SqlConnection(ConnectionStrings.MSSQL); - protected override IDatabaseProvider CreateDatabaseProvider() => new MssqlDatabaseProvider(this.CreateConnection()); + protected override IDatabaseProvider CreateDatabaseProvider() => new MssqlDatabaseProvider(this.CreateConnection()); protected override void Clean() { diff --git a/src/Simple.Migrations.IntegrationTests/Mysql/MysqlTests.cs b/src/Simple.Migrations.IntegrationTests/Mysql/MysqlTests.cs index 17af7c5..1f2fbce 100644 --- a/src/Simple.Migrations.IntegrationTests/Mysql/MysqlTests.cs +++ b/src/Simple.Migrations.IntegrationTests/Mysql/MysqlTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Data; using System.Data.Common; using System.Linq; using System.Threading.Tasks; @@ -15,9 +16,9 @@ public class MysqlTests : TestsBase { protected override IMigrationStringsProvider MigrationStringsProvider { get; } = new MysqlStringsProvider(); - protected override DbConnection CreateConnection() => new MySqlConnection(ConnectionStrings.MySQL); + protected override IDbConnection CreateConnection() => new MySqlConnection(ConnectionStrings.MySQL); - protected override IDatabaseProvider CreateDatabaseProvider() => new MysqlDatabaseProvider(this.CreateConnection()); + protected override IDatabaseProvider CreateDatabaseProvider() => new MysqlDatabaseProvider(this.CreateConnection()); protected override bool SupportConcurrentMigrators => true; diff --git a/src/Simple.Migrations.IntegrationTests/Postgresql/PostgresqlTests.cs b/src/Simple.Migrations.IntegrationTests/Postgresql/PostgresqlTests.cs index b37f243..cc79c0c 100644 --- a/src/Simple.Migrations.IntegrationTests/Postgresql/PostgresqlTests.cs +++ b/src/Simple.Migrations.IntegrationTests/Postgresql/PostgresqlTests.cs @@ -14,7 +14,7 @@ namespace Simple.Migrations.IntegrationTests.Postgresql [TestFixture] public class PostgresqlTests : TestsBase { - protected override IDatabaseProvider CreateDatabaseProvider() => new PostgresqlDatabaseProvider(this.CreateConnection()); + protected override IDatabaseProvider CreateDatabaseProvider() => new PostgresqlDatabaseProvider(this.CreateConnection()); protected override IMigrationStringsProvider MigrationStringsProvider { get; } = new PostgresqlStringsProvider(); @@ -33,6 +33,6 @@ protected override void Clean() private NpgsqlConnection CreatePgConnection() => new NpgsqlConnection(ConnectionStrings.PostgreSQL); - protected override DbConnection CreateConnection() => this.CreatePgConnection(); + protected override IDbConnection CreateConnection() => this.CreatePgConnection(); } } diff --git a/src/Simple.Migrations.IntegrationTests/Sqlite/SqliteTests.cs b/src/Simple.Migrations.IntegrationTests/Sqlite/SqliteTests.cs index 50fbd1b..bd1c202 100644 --- a/src/Simple.Migrations.IntegrationTests/Sqlite/SqliteTests.cs +++ b/src/Simple.Migrations.IntegrationTests/Sqlite/SqliteTests.cs @@ -16,7 +16,7 @@ namespace Simple.Migrations.IntegrationTests.Sqlite [TestFixture] public class SqliteTests : TestsBase { - protected override IDatabaseProvider CreateDatabaseProvider() => new SqliteDatabaseProvider(this.CreateConnection()); + protected override IDatabaseProvider CreateDatabaseProvider() => new SqliteDatabaseProvider(this.CreateConnection()); protected override IMigrationStringsProvider MigrationStringsProvider { get; } = new SqliteStringsProvider(); @@ -29,6 +29,6 @@ protected override void Clean() File.Delete(db); } - protected override DbConnection CreateConnection() => new SqliteConnection(ConnectionStrings.SQLite); + protected override IDbConnection CreateConnection() => new SqliteConnection(ConnectionStrings.SQLite); } } diff --git a/src/Simple.Migrations.IntegrationTests/TestsBase.cs b/src/Simple.Migrations.IntegrationTests/TestsBase.cs index 6d63562..909c2c8 100644 --- a/src/Simple.Migrations.IntegrationTests/TestsBase.cs +++ b/src/Simple.Migrations.IntegrationTests/TestsBase.cs @@ -13,8 +13,8 @@ namespace Simple.Migrations.IntegrationTests { public abstract class TestsBase { - protected abstract DbConnection CreateConnection(); - protected abstract IDatabaseProvider CreateDatabaseProvider(); + protected abstract IDbConnection CreateConnection(); + protected abstract IDatabaseProvider CreateDatabaseProvider(); protected abstract IMigrationStringsProvider MigrationStringsProvider { get; } protected abstract void Clean(); diff --git a/src/Simple.Migrations.UnitTests/DatabaseProviderBaseTests.cs b/src/Simple.Migrations.UnitTests/DatabaseProviderBaseTests.cs index 8386832..84468d1 100644 --- a/src/Simple.Migrations.UnitTests/DatabaseProviderBaseTests.cs +++ b/src/Simple.Migrations.UnitTests/DatabaseProviderBaseTests.cs @@ -31,7 +31,7 @@ // public string SetVersionSql = "Set Version SQL"; // public override string GetSetVersionSql() => this.SetVersionSql; -// public override DbConnection BeginOperation() +// public override IDbConnection BeginOperation() // { // throw new NotImplementedException(); // } diff --git a/src/Simple.Migrations.UnitTests/MockDatabaseProvider.cs b/src/Simple.Migrations.UnitTests/MockDatabaseProvider.cs index 200f2c7..323f592 100644 --- a/src/Simple.Migrations.UnitTests/MockDatabaseProvider.cs +++ b/src/Simple.Migrations.UnitTests/MockDatabaseProvider.cs @@ -4,15 +4,16 @@ using System.Threading.Tasks; using SimpleMigrations; using System.Data.Common; +using System.Data; namespace Simple.Migrations.UnitTests { - public abstract class MockDatabaseProvider : IDatabaseProvider + public abstract class MockDatabaseProvider : IDatabaseProvider { public long CurrentVersion; - public DbConnection Connection; + public IDbConnection Connection; - public DbConnection BeginOperation() + public IDbConnection BeginOperation() { return this.Connection; } diff --git a/src/Simple.Migrations.UnitTests/SimpleMigratorLoadTests.cs b/src/Simple.Migrations.UnitTests/SimpleMigratorLoadTests.cs index c43ffe7..c513015 100644 --- a/src/Simple.Migrations.UnitTests/SimpleMigratorLoadTests.cs +++ b/src/Simple.Migrations.UnitTests/SimpleMigratorLoadTests.cs @@ -36,18 +36,18 @@ protected override void Up() { } private Mock connection; private Mock migrationProvider; - private Mock> databaseProvider; + private Mock> databaseProvider; - private SimpleMigrator migrator; + private SimpleMigrator migrator; [SetUp] public void SetUp() { this.connection = new Mock(); this.migrationProvider = new Mock(); - this.databaseProvider = new Mock>(); + this.databaseProvider = new Mock>(); - this.migrator = new SimpleMigrator(this.migrationProvider.Object, this.databaseProvider.Object); + this.migrator = new SimpleMigrator(this.migrationProvider.Object, this.databaseProvider.Object); } [Test] diff --git a/src/Simple.Migrations.UnitTests/SimpleMigratorMigrateTests.cs b/src/Simple.Migrations.UnitTests/SimpleMigratorMigrateTests.cs index f0f83a3..4666d96 100644 --- a/src/Simple.Migrations.UnitTests/SimpleMigratorMigrateTests.cs +++ b/src/Simple.Migrations.UnitTests/SimpleMigratorMigrateTests.cs @@ -3,6 +3,7 @@ using SimpleMigrations; using System; using System.Collections.Generic; +using System.Data; using System.Data.Common; using System.Linq; using System.Reflection; @@ -21,7 +22,7 @@ private class Migration1 : Migration public static Exception Exception; public static Action Callback; - public new DbConnection Connection => base.Connection; + public new IDbConnection Connection => base.Connection; public new IMigrationLogger Logger => base.Logger; public static void Reset() @@ -75,7 +76,7 @@ public static void Reset() private List migrations; - private SimpleMigrator migrator; + private SimpleMigrator migrator; [SetUp] public void SetUp() @@ -96,7 +97,7 @@ public void SetUp() this.logger = new Mock(); - this.migrator = new SimpleMigrator(this.migrationProvider.Object, this.databaseProvider.Object, this.logger.Object); + this.migrator = new SimpleMigrator(this.migrationProvider.Object, this.databaseProvider.Object, this.logger.Object); this.migrations = new List() { diff --git a/src/Simple.Migrations/DatabaseProvider/DatabaseProviderBase.cs b/src/Simple.Migrations/DatabaseProvider/DatabaseProviderBase.cs index d74e9b2..9d316a9 100644 --- a/src/Simple.Migrations/DatabaseProvider/DatabaseProviderBase.cs +++ b/src/Simple.Migrations/DatabaseProvider/DatabaseProviderBase.cs @@ -1,4 +1,5 @@ using System; +using System.Data; using System.Data.Common; namespace SimpleMigrations.DatabaseProvider @@ -34,7 +35,7 @@ namespace SimpleMigrations.DatabaseProvider /// The subclasses and /// encapsulate these concepts. /// - public abstract class DatabaseProviderBase : IDatabaseProvider + public abstract class DatabaseProviderBase : IDatabaseProvider { /// /// Table name used to store version info. Defaults to 'VersionInfo' @@ -68,7 +69,7 @@ public abstract class DatabaseProviderBase : IDatabaseProvider /// Connection to use /// Transaction to use /// The current version, or 0 - protected virtual long EnsurePrerequisitesCreatedAndGetCurrentVersion(DbConnection connection, DbTransaction transaction) + protected virtual long EnsurePrerequisitesCreatedAndGetCurrentVersion(IDbConnection connection, IDbTransaction transaction) { var createSchemaSql = this.GetCreateSchemaTableSql(); if (!string.IsNullOrEmpty(createSchemaSql)) @@ -97,7 +98,7 @@ protected virtual long EnsurePrerequisitesCreatedAndGetCurrentVersion(DbConnecti /// and return the connection for the migrations to use. /// /// Connection for the migrations to use - public abstract DbConnection BeginOperation(); + public abstract IDbConnection BeginOperation(); /// /// Cleans up any connections and/or transactions and/or locks created by @@ -130,7 +131,7 @@ protected virtual long EnsurePrerequisitesCreatedAndGetCurrentVersion(DbConnecti /// Connection to use /// transaction to use, may be null /// The current database schema version, or 0 - protected virtual long GetCurrentVersion(DbConnection connection, DbTransaction transaction) + protected virtual long GetCurrentVersion(IDbConnection connection, IDbTransaction transaction) { long version = 0; using (var command = connection.CreateCommand()) @@ -176,7 +177,7 @@ protected virtual long GetCurrentVersion(DbConnection connection, DbTransaction /// The description of the migration which was applied /// Connection to use /// Transaction to use, may be null - protected virtual void UpdateVersion(long oldVersion, long newVersion, string newDescription, DbConnection connection, DbTransaction transaction) + protected virtual void UpdateVersion(long oldVersion, long newVersion, string newDescription, IDbConnection connection, IDbTransaction transaction) { if (this.MaxDescriptionLength > 0 && newDescription.Length > this.MaxDescriptionLength) { diff --git a/src/Simple.Migrations/DatabaseProvider/DatabaseProviderBaseWithAdvisoryLock.cs b/src/Simple.Migrations/DatabaseProvider/DatabaseProviderBaseWithAdvisoryLock.cs index da41718..c574078 100644 --- a/src/Simple.Migrations/DatabaseProvider/DatabaseProviderBaseWithAdvisoryLock.cs +++ b/src/Simple.Migrations/DatabaseProvider/DatabaseProviderBaseWithAdvisoryLock.cs @@ -16,7 +16,7 @@ public abstract class DatabaseProviderBaseWithAdvisoryLock : DatabaseProviderBas /// /// Gets the connection used for all database operations /// - protected DbConnection Connection { get; } + protected IDbConnection Connection { get; } /// /// Gets or sets the timeout when acquiring the advisory lock @@ -27,7 +27,7 @@ public abstract class DatabaseProviderBaseWithAdvisoryLock : DatabaseProviderBas /// Initialises a new instance of the class /// /// Database connection to use for all operations - public DatabaseProviderBaseWithAdvisoryLock(DbConnection connection) + public DatabaseProviderBaseWithAdvisoryLock(IDbConnection connection) { this.Connection = connection; if (this.Connection.State != ConnectionState.Open) @@ -63,7 +63,7 @@ public override long EnsurePrerequisitesCreatedAndGetCurrentVersion() /// is invoked, before any migrations are run. This invokes to acquire the advisory lock. /// /// Connection for the migrations to use - public override DbConnection BeginOperation() + public override IDbConnection BeginOperation() { this.AcquireAdvisoryLock(); return this.Connection; diff --git a/src/Simple.Migrations/DatabaseProvider/DatabaseProviderBaseWithVersionTableLock.cs b/src/Simple.Migrations/DatabaseProvider/DatabaseProviderBaseWithVersionTableLock.cs index 8f63a46..5073198 100644 --- a/src/Simple.Migrations/DatabaseProvider/DatabaseProviderBaseWithVersionTableLock.cs +++ b/src/Simple.Migrations/DatabaseProvider/DatabaseProviderBaseWithVersionTableLock.cs @@ -1,4 +1,5 @@ using System; +using System.Data; using System.Data.Common; namespace SimpleMigrations.DatabaseProvider @@ -25,7 +26,7 @@ public abstract class DatabaseProviderBaseWithVersionTableLock : DatabaseProvide /// /// This is set by , and cleated by . /// - protected DbConnection VersionTableConnection { get; set; } + protected IDbConnection VersionTableConnection { get; set; } /// /// Gets or sets the transaction on the used to lock it. @@ -33,7 +34,7 @@ public abstract class DatabaseProviderBaseWithVersionTableLock : DatabaseProvide /// /// This is set by , and cleated by . /// - protected DbTransaction VersionTableLockTransaction { get; set; } + protected IDbTransaction VersionTableLockTransaction { get; set; } /// /// Gets or sets the connection to be used by migrations. @@ -41,7 +42,7 @@ public abstract class DatabaseProviderBaseWithVersionTableLock : DatabaseProvide /// /// This is set by , and cleated by . /// - protected DbConnection MigrationsConnection { get; set; } + protected IDbConnection MigrationsConnection { get; set; } /// /// Initialises a new instance of the class @@ -78,7 +79,7 @@ public override long EnsurePrerequisitesCreatedAndGetCurrentVersion() /// , and invokes to acquire the VersionInfo table lock. /// /// Connection for the migrations to use - public override DbConnection BeginOperation() + public override IDbConnection BeginOperation() { this.VersionTableConnection = this.ConnectionFactory(); this.VersionTableConnection.Open(); diff --git a/src/Simple.Migrations/DatabaseProvider/MssqlDatabaseProvider.cs b/src/Simple.Migrations/DatabaseProvider/MssqlDatabaseProvider.cs index 58056db..39ff342 100644 --- a/src/Simple.Migrations/DatabaseProvider/MssqlDatabaseProvider.cs +++ b/src/Simple.Migrations/DatabaseProvider/MssqlDatabaseProvider.cs @@ -47,7 +47,7 @@ public string LockName /// Initialises a new instance of the class /// /// Connection to use to run migrations. The caller is responsible for closing this. - public MssqlDatabaseProvider(DbConnection connection) + public MssqlDatabaseProvider(IDbConnection connection) : base(connection) { this.MaxDescriptionLength = 256; diff --git a/src/Simple.Migrations/DatabaseProvider/MysqlDatabaseProvider.cs b/src/Simple.Migrations/DatabaseProvider/MysqlDatabaseProvider.cs index 1f07621..431e8fa 100644 --- a/src/Simple.Migrations/DatabaseProvider/MysqlDatabaseProvider.cs +++ b/src/Simple.Migrations/DatabaseProvider/MysqlDatabaseProvider.cs @@ -1,4 +1,5 @@ using System; +using System.Data; using System.Data.Common; namespace SimpleMigrations.DatabaseProvider @@ -30,7 +31,7 @@ public string LockName /// Initialises a new instance of the class /// /// Connection to use to run migrations. The caller is responsible for closing this. - public MysqlDatabaseProvider(DbConnection connection) + public MysqlDatabaseProvider(IDbConnection connection) : base(connection) { } diff --git a/src/Simple.Migrations/DatabaseProvider/PostgresqlDatabaseProvider.cs b/src/Simple.Migrations/DatabaseProvider/PostgresqlDatabaseProvider.cs index 1de5497..e21c30c 100644 --- a/src/Simple.Migrations/DatabaseProvider/PostgresqlDatabaseProvider.cs +++ b/src/Simple.Migrations/DatabaseProvider/PostgresqlDatabaseProvider.cs @@ -1,4 +1,5 @@ using System; +using System.Data; using System.Data.Common; namespace SimpleMigrations.DatabaseProvider @@ -37,7 +38,7 @@ public class PostgresqlDatabaseProvider : DatabaseProviderBaseWithAdvisoryLock /// Initialises a new instance of the class /// /// Connection to use to run migrations. The caller is responsible for closing this. - public PostgresqlDatabaseProvider(DbConnection connection) + public PostgresqlDatabaseProvider(IDbConnection connection) : base(connection) { } diff --git a/src/Simple.Migrations/DatabaseProvider/SqliteDatabaseProvider.cs b/src/Simple.Migrations/DatabaseProvider/SqliteDatabaseProvider.cs index 4bc2e01..7a56632 100644 --- a/src/Simple.Migrations/DatabaseProvider/SqliteDatabaseProvider.cs +++ b/src/Simple.Migrations/DatabaseProvider/SqliteDatabaseProvider.cs @@ -18,7 +18,7 @@ public class SqliteDatabaseProvider : DatabaseProviderBaseWithAdvisoryLock /// Initialises a new instance of the class /// /// Connection to use to run migrations. The caller is responsible for closing this. - public SqliteDatabaseProvider(DbConnection connection) + public SqliteDatabaseProvider(IDbConnection connection) : base(connection) { } diff --git a/src/Simple.Migrations/Migration.cs b/src/Simple.Migrations/Migration.cs index 8d52180..0bf9d7d 100644 --- a/src/Simple.Migrations/Migration.cs +++ b/src/Simple.Migrations/Migration.cs @@ -8,7 +8,7 @@ namespace SimpleMigrations /// Base class, intended to be used by all migrations (although you may implement directly if you wish). /// Migrations MUST apply the attribute /// - public abstract class Migration : IMigration + public abstract class Migration : IMigration { /// /// Gets or sets a value indicating whether calls to should be run inside of a transaction. @@ -21,7 +21,7 @@ public abstract class Migration : IMigration /// /// Gets or sets the database to be used by this migration /// - protected DbConnection Connection { get; private set; } + protected IDbConnection Connection { get; private set; } /// /// Gets or sets the logger to be used by this migration @@ -34,7 +34,7 @@ public abstract class Migration : IMigration /// /// This is set only if is true. /// - protected DbTransaction Transaction { get; private set; } + protected IDbTransaction Transaction { get; private set; } // Up and Down should really be 'protected', but in the name of backwards compatibility... @@ -79,7 +79,7 @@ protected virtual void Execute(string sql, int? commandTimeout = null) /// A which is configured with the , , /// and properties set. /// - protected virtual DbCommand CreateCommand(string sql, int? commandTimeout) + protected virtual IDbCommand CreateCommand(string sql, int? commandTimeout) { if (this.Connection == null) throw new InvalidOperationException("this.Connection has not yet been set. This should have been set by Execute(DbConnection, IMigrationLogger, MigrationDirection)"); @@ -94,7 +94,7 @@ protected virtual DbCommand CreateCommand(string sql, int? commandTimeout) return command; } - void IMigration.RunMigration(MigrationRunData data) + void IMigration.RunMigration(MigrationRunData data) { this.Connection = data.Connection; this.Logger = data.Logger; diff --git a/src/Simple.Migrations/SimpleMigrator.cs b/src/Simple.Migrations/SimpleMigrator.cs index a821b5f..e6125c1 100644 --- a/src/Simple.Migrations/SimpleMigrator.cs +++ b/src/Simple.Migrations/SimpleMigrator.cs @@ -8,7 +8,7 @@ namespace SimpleMigrations /// /// Migrator which uses connections /// - public class SimpleMigrator : SimpleMigrator> + public class SimpleMigrator : SimpleMigrator> { /// /// Instantiates a new instance of the class @@ -18,7 +18,7 @@ public class SimpleMigrator : SimpleMigratorLogger to use to log progress public SimpleMigrator( IMigrationProvider migrationProvider, - IDatabaseProvider databaseProvider, + IDatabaseProvider databaseProvider, ILogger logger = null) : base(migrationProvider, databaseProvider, logger) { @@ -32,7 +32,7 @@ public SimpleMigrator( /// Logger to use to log progress public SimpleMigrator( Assembly migrationsAssembly, - IDatabaseProvider databaseProvider, + IDatabaseProvider databaseProvider, ILogger logger = null) : base(migrationsAssembly, databaseProvider, logger) {