Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public async Task<IActionResult> TestPendingMigrations([FromServices] SomeDbContext dbContext)
- {
- var relationalDatabaseCreator = dbContext.GetService<IDatabaseCreator>() as IRelationalDatabaseCreator;
- var migrationsAssembly = dbContext.GetService<IMigrationsAssembly>();
- var modelDiffer = dbContext.GetService<IMigrationsModelDiffer>();
- var databaseExists = await relationalDatabaseCreator.ExistsAsync();
- // HasDifferences will return true if there is no model snapshot, but if there is an existing database
- // and no model snapshot then we don't want to show the error page since they are most likely targeting
- // and existing database and have just misconfigured their model
- var pendingModelChanges
- = (!databaseExists || migrationsAssembly.ModelSnapshot != null)
- && modelDiffer.HasDifferences(migrationsAssembly.ModelSnapshot?.Model, dbContext.Model);
- var pendingMigrations
- = (databaseExists
- ? await dbContext.Database.GetPendingMigrationsAsync()
- : dbContext.Database.GetMigrations())
- .ToArray();
- // get Sitemanager.CurrentSite -> isClosed; closedMessage = "updates pending.." or similar.
- // add action to admin menu (update database).
- return new EmptyResult();
- }
Add Comment
Please, Sign In to add comment