public ActionResult Update(string password, string target = null) { if (password != WebAppSettings.DbMigrationSecret) { return(HttpNotFound()); } try { lock (_migrationLock) { var migrator = new DatabaseMigrator <ApplicationDbContext, App.DataAccess.Migrations.Configuration>(); migrator.MigrateToLatestVersion(true, string.IsNullOrWhiteSpace(target) ? null : target); return(Json(new { Status = true, Message = $"Success in migrating DB. Target migration: {(string.IsNullOrWhiteSpace(target) ? "#LATEST#" : target)}" }, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { _logger.LogError(ex); return(Json(new { Status = false, Error = ex.Message, ErrorInner = ex.InnerException?.Message }, JsonRequestBehavior.AllowGet)); } }
protected void Application_Start() { lock (_dbMigrationLock) { if (GlobalWebConfig.DbMigration_MigrateOnAppStart) { var dbMigrator = new DatabaseMigrator <ApplicationDbContext, DbMigrationConfiguration>(); dbMigrator.MigrateToLatestVersion(GlobalWebConfig.DbMigration_AllowDataLoss); } } // Start ProtoCMS engine ProtoEngine.Start(); AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); }