Radarr/src/NzbDrone.Core/Datastore/Migration/Framework/NzbDroneMigrationBase.cs

64 lines
1.7 KiB
C#
Raw Normal View History

using System;
using FluentMigrator;
2013-09-05 00:06:24 +00:00
using NLog;
using NzbDrone.Common.Instrumentation;
2013-03-25 06:13:53 +00:00
namespace NzbDrone.Core.Datastore.Migration.Framework
{
2013-03-25 06:13:53 +00:00
public abstract class NzbDroneMigrationBase : FluentMigrator.Migration
{
protected readonly Logger _logger;
2013-09-05 00:06:24 +00:00
protected NzbDroneMigrationBase()
{
_logger = NzbDroneLogger.GetLogger(this);
2013-09-05 00:06:24 +00:00
}
protected virtual void MainDbUpgrade()
{
}
protected virtual void LogDbUpgrade()
{
}
public int Version
{
get
{
var migrationAttribute = (MigrationAttribute)Attribute.GetCustomAttribute(GetType(), typeof(MigrationAttribute));
return (int)migrationAttribute.Version;
}
}
public override void Up()
{
2019-10-14 20:21:00 +00:00
if (MigrationContext.Current.BeforeMigration != null)
{
2019-10-14 20:21:00 +00:00
MigrationContext.Current.BeforeMigration(this);
}
2019-10-14 20:21:00 +00:00
switch (MigrationContext.Current.MigrationType)
{
2013-06-19 01:01:08 +00:00
case MigrationType.Main:
_logger.Info("Starting migration to " + Version);
2013-06-19 01:01:08 +00:00
MainDbUpgrade();
return;
case MigrationType.Log:
2014-12-06 19:16:22 +00:00
_logger.Info("Starting migration to " + Version);
2013-06-19 01:01:08 +00:00
LogDbUpgrade();
return;
default:
LogDbUpgrade();
MainDbUpgrade();
return;
}
}
public override void Down()
{
throw new NotImplementedException();
}
}
}