Migratordotnet - Запуск миграции из приложения (без использования или сборки) Есть ли способ запуска миграции из самого приложения? Спасибо! Ответ 1 Я создаю экземпляр класса Migrator, а затем вы можете вызвать методы-члены, такие как MigrateToLastVersion() или MigrateTo(long versionnr) Migrator.Migrator m = new Migrator.Migrator ("SqlServer", connectionString, migrationsAssembly) m.MigrateToLastVersion(); Ответ 2 Я не понимаю, почему нет. Посмотрите на задачу nant http://code.google.com/p/migratordotnet/source/browse/trunk/src/Migrator.NAnt/MigrateTask.cs Соответствующие биты находятся здесь: private void Execute(Assembly asm) { Migrator mig = new Migrator(Provider, ConnectionString, asm, Trace, new TaskLogger(this)); mig.DryRun = DryRun; if (ScriptChanges) { using (StreamWriter writer = new StreamWriter(ScriptFile)) { mig.Logger = new SqlScriptFileLogger(mig.Logger, writer); RunMigration(mig); } } else { RunMigration(mig); } } private void RunMigration(Migrator mig) { if (mig.DryRun) mig.Logger.Log("********** Dry run! Not actually applying changes. **********"); if (_to == -1) mig.MigrateToLastVersion(); else mig.MigrateTo(_to); }
Ответ 1 Я создаю экземпляр класса Migrator, а затем вы можете вызвать методы-члены, такие как MigrateToLastVersion() или MigrateTo(long versionnr) Migrator.Migrator m = new Migrator.Migrator ("SqlServer", connectionString, migrationsAssembly) m.MigrateToLastVersion();
Ответ 2 Я не понимаю, почему нет. Посмотрите на задачу nant http://code.google.com/p/migratordotnet/source/browse/trunk/src/Migrator.NAnt/MigrateTask.cs Соответствующие биты находятся здесь: private void Execute(Assembly asm) { Migrator mig = new Migrator(Provider, ConnectionString, asm, Trace, new TaskLogger(this)); mig.DryRun = DryRun; if (ScriptChanges) { using (StreamWriter writer = new StreamWriter(ScriptFile)) { mig.Logger = new SqlScriptFileLogger(mig.Logger, writer); RunMigration(mig); } } else { RunMigration(mig); } } private void RunMigration(Migrator mig) { if (mig.DryRun) mig.Logger.Log("********** Dry run! Not actually applying changes. **********"); if (_to == -1) mig.MigrateToLastVersion(); else mig.MigrateTo(_to); }