/// <summary> /// Specifies the migrationConfig which contain a list Migration to migrate /// the migration is executed automatic as long as you have class that inherit from IMigrationConfig /// or you could manually execute a migration /// </summary> /// <typeparam name="T"></typeparam> /// <exception cref="Exception"></exception> protected void MigrationConfig <T>(T config) where T : IMigrationConfig { try { GlobalConfiguration.Log?.Info("Migration", "Initialize"); this.CreateTable <DBMigration>(false); var migrations = config.GetMigrations(this) ?? new List <Migration>(); this.CreateTransaction(); foreach (var migration in migrations) { var name = migration.GetType().FullName + migration.MigrationIdentifier; if (Get <DBMigration>().Where(x => x.Name == name).ExecuteAny()) { continue; } var item = new DBMigration { Name = name, DateCreated = DateTime.Now }; migration.ExecuteMigration(this); this.Save(item); } SaveChanges(); } catch (Exception e) { GlobalConfiguration.Log?.Error(e); Rollback(); throw; } _tableMigrationCheck[DataBaseTypes] = true; }
/// <summary> /// Specifie the migrationConfig which containe a list Migration to migrate /// the migration is executed automaticly but as long as you have class that inhert from IMigrationConfig /// or you could manully execute a migration /// </summary> /// <typeparam name="T"></typeparam> /// <exception cref="Exception"></exception> protected void MigrationConfig <T>(T config) where T : IMigrationConfig { if (Migrations != null) { return; } try { Migrations = config.GetMigrations(this) ?? new List <Migration>(); this.CreateTransaction(); foreach (var migration in Migrations) { var name = migration.GetType().FullName + migration.MigrationIdentifier; var dbMigration = this.Get <DBMigration>().Where(x => x.Name == name).Execute(); if (dbMigration.Any()) { continue; } var item = new DBMigration { Name = name, DateCreated = DateTime.Now }; migration.ExecuteMigration(this); this.Save(item); } Commit(); } catch (Exception) { Rollback(); throw; } }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); new AppEngine().StartupApplication(); DBMigration.Init(); }
/// <summary> /// Инициализируем базы данных /// </summary> private void initDataBases() { DBMigration tdbm = new DBMigration(); }