public void TestMigrateMultipleFiles3()
        {
            SqlDatabaseHelper.ClearDatabase();
            Sql2008Migrator migrator = new Sql2008Migrator(SqlDatabaseHelper.DefaultConnectionString);

            var files = new IMigrationFile[] {
                new MigrationFile_03_DropTable(),
                new MigrationFile_01_CreateTable(),
                new MigrationFile_02_AlterTable(),
                new MigrationFile_04_AddColumn(),
                new MigrationFile_07_RenameColumn(),
                new MigrationFile_05_AlterColumn(),
                new MigrationFile_06_DropColumn(),
                new MigrationFile_08_TableExists(),
                new MigrationFile_10_CreatePrimaryKey(),
                new MigrationFile_09_RenameTable(),
                new MigrationFile_13_DropConstraint(),
                new MigrationFile_11_CreateForeignKey(),
                new MigrationFile_12_CreateUnique()
            };
            string s = migrator.Migrate(files).EndId;

            Assert.AreEqual("13_01", s);

            migrator.Dispose();
        }
예제 #2
0
        public MigrationResult Migrate(IMigrationFile migrationFile)
        {
            Logger.Log("starting migration from single file", "migrate");

            var methods       = migrationFile.GetType().GetMethods(BindingFlags.Public | BindingFlags.Instance);
            var allMigrations = (from m in methods
                                 where m.Name.StartsWith("Migrate_")
                                 select new MigrateIteration()
            {
                File = migrationFile,
                Id = m.Name.Remove(0, "Migrate_".Length),
                Method = m
            });

            return(migrateMethods(allMigrations));
        }