Есть ли способ запуска миграции из самого приложения?migratordotnet - Запуск миграции из приложения (без наложения или сборки)
Спасибо!
Есть ли способ запуска миграции из самого приложения?migratordotnet - Запуск миграции из приложения (без наложения или сборки)
Спасибо!
I создается экземпляр класса Migrator, а затем вы можете вызывать методы, как члены MigrateToLastVersion()
или MigrateTo(long versionnr)
Migrator.Migrator m = new Migrator.Migrator ("SqlServer", connectionString, migrationsAssembly)
m.MigrateToLastVersion();
Я не понимаю, почему нет.
Посмотрите на задачу 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);
}
Извините, но я не понимаю ... Я сделал класс-Projekt и сделал все, как в учебниках. Затем я создал новый веб-проект и включил файл migration.dll и мою скомпилированную сборку. Затем я включил исходный код, но где я могу найти нужную миграционную сборку? Он находит только мое пространство имен «DBMigration», но появляется сообщение об ошибке «DBMigration - это пространство имен, но оно используется как тип». Вы можете мне помочь? – Lichtamberg
Решил это ... С System.Reflection.Assembly.Load (...) – Lichtamberg
Вот как это должно быть сделано. :) Загрузите файл сборки, содержащий ваши миграции, в экземпляр сборки и передайте его классу Migrator. :) –