public void NewTableTest(SqlEngineVersion version) { _sqlExecuterTestAdapter.Check(version); var dd = new TestDatabaseSimple(); _sqlExecuterTestAdapter.InitializeAndCreate(version.UniqueName, dd); var context = new Context { Settings = TestHelper.GetDefaultTestSettings(version), Logger = TestHelper.CreateLogger() }; var migrationGenerator = SqlGeneratorFactory.CreateMigrationGenerator(version, context); var executer = _sqlExecuterTestAdapter.GetExecuter(version.UniqueName); var databaseMigrator = new DatabaseMigrator(executer, migrationGenerator); var tableNew = new TableNew { SchemaAndTableName = "NewTableToMigrate" }; ((SqlTable)tableNew).AddInt32("Id", false).SetPK().SetIdentity(); new PrimaryKeyNamingDefaultStrategy().SetPrimaryKeyName(tableNew.Properties.OfType <PrimaryKey>().First()); ((SqlTable)tableNew).AddNVarChar("Name", 100); dd.AddTable(tableNew); databaseMigrator.NewTable(tableNew); }
public void FkCheckNoCheckTest() { var version = MsSqlVersion.MsSql2016; var dd = new TestDatabaseFk(); dd.SetVersions(version.GetTypeMapper()); Init(version, dd); var ddlReader = DataDefinitionReaderFactory.CreateDataDefinitionReader( SqlExecuterTestAdapter.ConnectionStrings[version.UniqueName] , SqlExecuterTestAdapter.GetContext(version), dd.GetSchemaNames().ToList()); var ddInDatabase = ddlReader.GetDatabaseDefinition(); var fk = dd.GetTable("Foreign").Properties.OfType <ForeignKey>().First(); Assert.AreEqual("true", fk.SqlEngineVersionSpecificProperties[version, "Nocheck"]); fk.SqlEngineVersionSpecificProperties[version, "Nocheck"] = "false"; var comparer = new Comparer(SqlExecuterTestAdapter.GetContext(version)); var changes = comparer.Compare(ddInDatabase, dd); _ = changes[0] as ForeignKeyChange; _ = new DatabaseMigrator(SqlExecuterTestAdapter.GetExecuter(version.UniqueName), SqlGeneratorFactory.CreateMigrationGenerator(version, SqlExecuterTestAdapter.GetContext(version))); // TODO change FK // databaseMigrator. }
private static DatabaseMigrator ProcessAndGetMigrator(SqlEngineVersion version, DatabaseDefinitions dds, out List <IMigration> changes) { Init(version, dds.Original); var ddlReader = DataDefinitionReaderFactory.CreateDataDefinitionReader(SqlExecuterTestAdapter.ConnectionStrings[version.UniqueName], SqlExecuterTestAdapter.GetContext(version), dds.Original.GetSchemaNames().ToList()); var ddInDatabase = ddlReader.GetDatabaseDefinition(); var comparer = new Comparer(SqlExecuterTestAdapter.GetContext(version)); changes = comparer.Compare(ddInDatabase, dds.New); var databaseMigrator = new DatabaseMigrator(SqlExecuterTestAdapter.GetExecuter(version.UniqueName), SqlGeneratorFactory.CreateMigrationGenerator(version, SqlExecuterTestAdapter.GetContext(version))); return(databaseMigrator); }