Lidarr/NzbDrone.Core/Datastore/MigrationHelper.cs

39 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using FluentMigrator;
using FluentMigrator.Runner;
using FluentMigrator.Runner.Initialization;
namespace NzbDrone.Core.Datastore
{
public static class MigrationHelper
{
public static void MigrateToLatest(string connectionString, MigrationType migrationType)
{
var announcer = new NlogAnnouncer();
var assembly = Assembly.GetExecutingAssembly();
var migrationContext = new RunnerContext(announcer)
{
Namespace = "NzbDrone.Core.Datastore.Migrations",
ApplicationContext = migrationType
};
var options = new MigrationOptions { PreviewOnly = false, Timeout = 60 };
var factory = new FluentMigrator.Runner.Processors.Sqlite.SqliteProcessorFactory();
var processor = factory.Create(connectionString, announcer, options);
var runner = new MigrationRunner(assembly, migrationContext, processor);
runner.MigrateUp(true);
}
}
public class MigrationOptions : IMigrationProcessorOptions
{
public bool PreviewOnly { get; set; }
public int Timeout { get; set; }
}
}