Guest User

Untitled

a guest
Jan 18th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. public async Task<IActionResult> TestPendingMigrations([FromServices] SomeDbContext dbContext)
  2. {
  3. var relationalDatabaseCreator = dbContext.GetService<IDatabaseCreator>() as IRelationalDatabaseCreator;
  4. var migrationsAssembly = dbContext.GetService<IMigrationsAssembly>();
  5. var modelDiffer = dbContext.GetService<IMigrationsModelDiffer>();
  6. var databaseExists = await relationalDatabaseCreator.ExistsAsync();
  7.  
  8. // HasDifferences will return true if there is no model snapshot, but if there is an existing database
  9. // and no model snapshot then we don't want to show the error page since they are most likely targeting
  10. // and existing database and have just misconfigured their model
  11.  
  12. var pendingModelChanges
  13. = (!databaseExists || migrationsAssembly.ModelSnapshot != null)
  14. && modelDiffer.HasDifferences(migrationsAssembly.ModelSnapshot?.Model, dbContext.Model);
  15.  
  16. var pendingMigrations
  17. = (databaseExists
  18. ? await dbContext.Database.GetPendingMigrationsAsync()
  19. : dbContext.Database.GetMigrations())
  20. .ToArray();
  21. // get Sitemanager.CurrentSite -> isClosed; closedMessage = "updates pending.." or similar.
  22. // add action to admin menu (update database).
  23.  
  24.  
  25. return new EmptyResult();
  26. }
Add Comment
Please, Sign In to add comment