private void ExecuteMigrations(string connectionString) { if (_environment.IsDevelopment()) { try { var evolveConnection = new MySql.Data.MySqlClient.MySqlConnection(connectionString); var evolve = new Evolve.Evolve("evolve.json", evolveConnection, msg => _logger.LogInformation(msg)) { Locations = new List <string> { "db/migrations" }, //não apaga conteúdo, caso já existe alguma informação no BD IsEraseDisabled = true, }; evolve.Repair(); evolve.Migrate(); } catch (Exception ex) { _logger.LogCritical("Database migration faield.", ex); throw; } } }
public async Task RunMigrations(bool repair) { await using var connection = await Obtain(); var evolve = new Evolve.Evolve(connection, msg => _logger.Information("Evolve: {Message}", msg)) { Locations = new[] { Path.Join(Path.GetDirectoryName(typeof(Database).Assembly.Location), "Schema") }, IsEraseDisabled = true, SqlMigrationPrefix = "v", SqlRepeatableMigrationPrefix = "r", CommandTimeout = 9999999 // some of these are really long! }; if (repair) { evolve.Repair(); } // Evolve isn't async >.> await Task.Run(() => evolve.Migrate()); }