public void VerifyThatMigrationVersionsWork() { MigrationEngine.Reset(); MigrationEngine.Migrate(excludes: new List <string>() { "BadMigration", "BadSeed", "BadSave", "BadReverse" }); Assert.IsTrue(DatabaseSession.Instance.Connector.CheckTableExists(new MigrationRecord())); Assert.AreEqual(4, MigrationRecord.All().Count); MigrationEngine.ResetTo(new Version(1, 0, 0)); Assert.AreEqual(3, MigrationRecord.All().Count); MigrationEngine.Reset(); MigrationEngine.Migrate(excludes: new List <string>() { "BadMigration", "BadSeed", "BadSave" }); Assert.IsTrue(DatabaseSession.Instance.Connector.CheckTableExists(new MigrationRecord())); Assert.AreEqual(5, MigrationRecord.All().Count); var migrationDeleteBase = new BadMigration(); Assert.Throws <InvalidDataException>(() => migrationDeleteBase.Delete()); Assert.Throws <Exception>(() => MigrationEngine.ResetTo(new Version(0, 0, 0))); MigrationEngine.Reset(hard: true); Assert.IsFalse(DatabaseSession.Instance.Connector.CheckTableExists(new MigrationRecord())); }
/// <summary> /// Sets up the database connection and migration engine /// </summary> private void SetupDatabaseConnection() { // read all settings from the db var settings = AppSettingsManager.ReadAllSettings(); try { // Create the connection. DatabaseSession.Instance.CreateConnector(settings["dbhost"], settings["dbport"], settings["dbname"], settings["dbuser"], settings["dbpassword"]); } catch (Exception ex) { throw new HttpRequestException(string.Format("The connection to database could not be made: {0}", ex.Message)); } #if DEBUG // when debugging reset the full database MigrationEngine.Reset(); #endif // perform the migration MigrationEngine.Migrate(); }
public void VerifyThatMigrationEngineWorks() { // Reset all migrations MigrationEngine.Reset(); Assert.IsFalse(DatabaseSession.Instance.Connector.CheckTableExists(new MigrationRecord())); Assert.Throws <Exception>(() => MigrationEngine.Migrate()); Assert.IsTrue(DatabaseSession.Instance.Connector.CheckTableExists(new MigrationRecord())); Assert.Throws <Exception>(() => MigrationEngine.Migrate(new List <string>() { "BadMigration" })); Assert.Throws <Exception>(() => MigrationEngine.Migrate(excludes: new List <string>() { "BadMigration", "BadSeed" })); MigrationEngine.Migrate(excludes: new List <string>() { "BadMigration", "BadSeed", "BadSave", "CreateMigrationTable" }); Assert.Throws <Exception>(() => MigrationEngine.Reset("BadReverse")); MigrationEngine.Reset(hard: true); Assert.IsFalse(DatabaseSession.Instance.Connector.CheckTableExists(new MigrationRecord())); }