Beispiel #1
0
        private static void Update(MigratorLoggingDecorator logger)
        {
            var last = logger.GetDatabaseMigrations().OrderByDescending(m => m).FirstOrDefault();

            try
            {
                if (File.Exists(NOME_ARQUIVO_LAST_MIGRATION_VALIDA))
                {
                    File.Delete(NOME_ARQUIVO_LAST_MIGRATION_VALIDA);
                }

                logger.Update();

                File.WriteAllText(NOME_ARQUIVO_LAST_MIGRATION_VALIDA, last);
            }
            catch (SqlException ex)
            {
                // LogManagerComum.LogarErro(ex, mensagem: "DEPLOY PGD -> UPDATE DATABASE");
                Console.WriteLine("Erro ao executar Update Database: " + ex.Message);

                try
                {
                    logger.Configuration.AutomaticMigrationDataLossAllowed = true;
                    logger.Update(last);
                    logger.Configuration.AutomaticMigrationDataLossAllowed = false;
                }
                catch (SqlException ex2)
                {
                    // LogManagerComum.LogarErro(ex2, mensagem: "DEPLOY PGD -> UPDATE DATABASE -> *** ATENCAO *** PROBLEMAS NO ROLLBACK!!!!!");
                }

                Environment.ExitCode = -1;
            }
        }
Beispiel #2
0
        internal override void DoWork()
        {
            logger.LogInformation("Create migration");

            var connectionString = configuration.GetConnectionString("DefaultConnection");

            //TODO mask connection string from logs;
            //logger.LogInformation("Discovered connection string {connectionString}", connectionString);

            var migrator = new MigratorLoggingDecorator(new DbMigrator(new JoinMigrationsConfig(connectionString)), new MigrationsLoggerILoggerAdapter(logger));

            logger.LogInformation("Migrator created");

            logger.LogInformation("Start migration");

            logger.LogInformation("Last local migration {lastLocal}", migrator.GetLocalMigrations().OrderBy(x => x).LastOrDefault());
            logger.LogInformation("Last DB migration {lastDb}", migrator.GetDatabaseMigrations().OrderBy(x => x).LastOrDefault());

            var pending = migrator.GetPendingMigrations();

            logger.LogInformation("Pending migrations {pending}", string.Join("\n", pending));
            migrator.Update();
            logger.LogInformation("Migration completed");
        }