Пример #1
0
        public void Test1()
        {
            var conf = new SqlBlinkerConfig();

            conf.Source = new SqlConnectionDetails
            {
                Host         = "localhost",
                UserName     = "******",
                Password     = "",
                DatabaseName = "s"
            };

            conf.Target = new SqlConnectionDetails
            {
                Host         = "localhost",
                UserName     = "******",
                Password     = "",
                DatabaseName = "t"
            };

            MySqlMigrationDetector migrator = new MySqlMigrationDetector(conf);

            //MysqlSelectAsObject<SqlTableDetailsObject> select = new MysqlSelectAsObject<SqlTableDetailsObject>(migrator.SourceMysqlConnection);
            //var res = select.Execute("select * from information_schema.TABLES");

            new MySqlCommand("drop database if exists `s`", migrator.MigrationContext.Target).ExecuteNonQuery();
            new MySqlCommand("drop database if exists `t`", migrator.MigrationContext.Target).ExecuteNonQuery();


            new MySqlCommand("create database s", migrator.MigrationContext.Target).ExecuteNonQuery();
            new MySqlCommand("create database t", migrator.MigrationContext.Target).ExecuteNonQuery();

            new MySqlCommand(@"CREATE TABLE `t`.`to_remove` (
                                `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
                                PRIMARY KEY (`id`)
                                ) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8", migrator.MigrationContext.Target).ExecuteNonQuery();

            new MySqlCommand(@"CREATE TABLE `s`.`to_create` (
                                `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
                                PRIMARY KEY (`id`)
                                ) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8", migrator.MigrationContext.Target).ExecuteNonQuery();

            var allCommands = migrator.Detect();

            MysqlMigrator mig = new MysqlMigrator(migrator.MigrationContext);

            mig.Migrate(allCommands);
        }
        public MySqlMigrationDetector(SqlBlinkerConfig sqlBlinkerConfig)
        {
            this.MigrationContext.SqlBlinkerConfig = sqlBlinkerConfig;
            string srcStr =
                $"server={this.MigrationContext.SqlBlinkerConfig.Source.Host};user={this.MigrationContext.SqlBlinkerConfig.Source.UserName};password={this.MigrationContext.SqlBlinkerConfig.Source.Password}";

            this.MigrationContext.Source = new MySqlConnection(srcStr);
            this.MigrationContext.Source.Open();


            string targetStr =
                $"server={this.MigrationContext.SqlBlinkerConfig.Target.Host};user={this.MigrationContext.SqlBlinkerConfig.Target.UserName};password={this.MigrationContext.SqlBlinkerConfig.Target.Password}";

            this.MigrationContext.Target = new MySqlConnection(srcStr);
            this.MigrationContext.Target.Open();
        }