mirror of
https://github.com/Sonarr/Sonarr
synced 2024-12-27 02:07:41 +00:00
refactored Migrations
This commit is contained in:
parent
a6fe8b276b
commit
a1653022ad
4 changed files with 21 additions and 70 deletions
|
@ -56,7 +56,7 @@ namespace NzbDrone.Core
|
|||
|
||||
LogConfiguration.Setup();
|
||||
|
||||
Migrations.Run();
|
||||
Migrations.Run(Connection.MainConnectionString);
|
||||
ForceMigration(_kernel.Get<IRepository>());
|
||||
|
||||
SetupDefaultQualityProfiles(_kernel.Get<IRepository>()); //Setup the default QualityProfiles on start-up
|
||||
|
@ -97,9 +97,9 @@ namespace NzbDrone.Core
|
|||
_kernel.Bind<WebTimer>().ToSelf().InSingletonScope();
|
||||
_kernel.Bind<AutoConfigureProvider>().ToSelf().InSingletonScope();
|
||||
|
||||
_kernel.Bind<IRepository>().ToConstant(Connection.MainDataRepository).InSingletonScope();
|
||||
_kernel.Bind<IRepository>().ToConstant(Connection.LogDataRepository).WhenInjectedInto<SubsonicTarget>().InSingletonScope();
|
||||
_kernel.Bind<IRepository>().ToConstant(Connection.LogDataRepository).WhenInjectedInto<LogProvider>().InSingletonScope();
|
||||
_kernel.Bind<IRepository>().ToConstant(Connection.CreateSimpleRepository(Connection.MainConnectionString)).InSingletonScope();
|
||||
_kernel.Bind<IRepository>().ToConstant(Connection.CreateSimpleRepository(Connection.LogConnectionString)).WhenInjectedInto<SubsonicTarget>().InSingletonScope();
|
||||
_kernel.Bind<IRepository>().ToConstant(Connection.CreateSimpleRepository(Connection.LogConnectionString)).WhenInjectedInto<LogProvider>().InSingletonScope();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,11 +18,16 @@ namespace NzbDrone.Core.Datastore
|
|||
}
|
||||
|
||||
|
||||
public static string GetConnectionString(string path)
|
||||
{
|
||||
return String.Format("Data Source={0};Version=3;", path);
|
||||
}
|
||||
|
||||
public static String MainConnectionString
|
||||
{
|
||||
get
|
||||
{
|
||||
return String.Format("Data Source={0};Version=3;", Path.Combine(AppDataPath.FullName, "nzbdrone.db"));
|
||||
return GetConnectionString(Path.Combine(AppDataPath.FullName, "nzbdrone.db"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -30,70 +35,19 @@ namespace NzbDrone.Core.Datastore
|
|||
{
|
||||
get
|
||||
{
|
||||
return String.Format("Data Source={0};Version=3;", Path.Combine(AppDataPath.FullName, "log.db"));
|
||||
return GetConnectionString(Path.Combine(AppDataPath.FullName, "log.db"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static IDataProvider _mainDataProvider;
|
||||
public static IDataProvider MainDataProvider
|
||||
public static IDataProvider GetDataProvider(string connectionString)
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_mainDataProvider == null)
|
||||
{
|
||||
_mainDataProvider = ProviderFactory.GetProvider(Connection.MainConnectionString, "System.Data.SQLite");
|
||||
}
|
||||
return _mainDataProvider;
|
||||
}
|
||||
|
||||
return ProviderFactory.GetProvider(connectionString, "System.Data.SQLite");
|
||||
}
|
||||
|
||||
private static IDataProvider _logDataProvider;
|
||||
public static IDataProvider LogDataProvider
|
||||
public static IRepository CreateSimpleRepository(string connectionString)
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_logDataProvider == null)
|
||||
{
|
||||
_logDataProvider = ProviderFactory.GetProvider(Connection.LogConnectionString, "System.Data.SQLite");
|
||||
}
|
||||
return _logDataProvider;
|
||||
}
|
||||
|
||||
return new SimpleRepository(GetDataProvider(connectionString), SimpleRepositoryOptions.RunMigrations);
|
||||
}
|
||||
|
||||
|
||||
private static SimpleRepository _mainDataRepository;
|
||||
public static SimpleRepository MainDataRepository
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_mainDataRepository == null)
|
||||
{
|
||||
_mainDataRepository = new SimpleRepository(MainDataProvider, SimpleRepositoryOptions.RunMigrations);
|
||||
}
|
||||
|
||||
return _mainDataRepository;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static SimpleRepository _logDataRepository;
|
||||
public static SimpleRepository LogDataRepository
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_logDataRepository == null)
|
||||
{
|
||||
_logDataRepository = new SimpleRepository(LogDataProvider, SimpleRepositoryOptions.RunMigrations);
|
||||
}
|
||||
return _logDataRepository;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,16 +16,16 @@ namespace NzbDrone.Core.Datastore
|
|||
{
|
||||
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
||||
|
||||
public static void Run()
|
||||
public static void Run(string connetionString)
|
||||
{
|
||||
Logger.Info("Preparing to migrate databse");
|
||||
Logger.Info("Preparing run database migration");
|
||||
|
||||
try
|
||||
{
|
||||
var mig = new Migrator.Migrator("Sqlite", Connection.MainConnectionString,
|
||||
var migrator = new Migrator.Migrator("Sqlite", connetionString,
|
||||
Assembly.GetAssembly(typeof(Migrations)), true, new MigrationLogger());
|
||||
|
||||
mig.MigrateToLastVersion();
|
||||
migrator.MigrateToLastVersion();
|
||||
|
||||
Logger.Info("Database migration completed");
|
||||
}
|
||||
|
@ -111,10 +111,7 @@ namespace NzbDrone.Core.Datastore
|
|||
{
|
||||
public override void Up()
|
||||
{
|
||||
if(Database.TableExists("Seasons"))
|
||||
{
|
||||
Database.RemoveTable("Seasons");
|
||||
}
|
||||
Database.RemoveTable("Seasons");
|
||||
|
||||
Migrations.RemoveDeletedColumns(Database);
|
||||
Migrations.AddNewColumns(Database);
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace NzbDrone.Core.Datastore
|
|||
|
||||
public virtual ITable GetSchemaFromType(Type type)
|
||||
{
|
||||
return type.ToSchemaTable(Connection.MainDataProvider);
|
||||
return type.ToSchemaTable(Connection.GetDataProvider(Connection.MainConnectionString));
|
||||
}
|
||||
|
||||
public virtual Column[] GetColumnsFromDatabase(ITransformationProvider database, string tableName)
|
||||
|
|
Loading…
Reference in a new issue