refactored Migrations

This commit is contained in:
kay.one 2011-06-04 11:19:22 -07:00
parent a6fe8b276b
commit a1653022ad
4 changed files with 21 additions and 70 deletions

View File

@ -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();
}
}

View File

@ -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;
}
}
}
}

View File

@ -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);

View File

@ -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)