public static bool Migrate(ILogger logger, DBTypeEnum dbType, string connectionString, bool create)
        {
            if (DefaultConnectionString == null)
            {
                DefaultConnectionString = connectionString;
            }
            IdentityDbContextBase dbContext = null;

            try
            {
                switch (dbType)
                {
                case DBTypeEnum.Oracle:
                    dbContext = new IdentityDbContextBaseMigrOracle();
                    break;

                case DBTypeEnum.PostgreSQL:
                    dbContext = new IdentityDbContextBaseMigrPostgreSQL();
                    break;

                case DBTypeEnum.SQLServer:
                    dbContext = new IdentityDbContextBaseMigrSQLServer();
                    break;
                }
                Migrate(logger, dbContext, create);
            }
            finally
            {
                dbContext?.Dispose();
            }
            return(false);
        }
 private static bool Migrate(ILogger logger, IdentityDbContextBase dbContext, bool create)
 {
     if (create || dbContext.Database.CanConnect())
     {
         var migr = dbContext.Database.GetPendingMigrations();
         if (migr.Any())
         {
             foreach (var item in migr)
             {
                 logger.LogInformation("RGF Identity Migrate: {0}", item);
             }
             dbContext.Database.Migrate();
         }
         return(true);
     }
     return(false);
 }