Я использую Fluent Migrator из Visual Studio для создания таблиц дБ в качестве настройки для настройки интеграционного теста, а затем удаляю их при разборке. Когда FM сталкивается с проблемой, он заявляет, что откатывает транзакцию, но вставки в эту точку на самом деле не обращаются в дБ (т. Е. Он обращает VersionInfo, но фактически не удаляет таблицы, вставленные в эту точку).
Моя миграция помечена TransactionBehavior.Default
. Я настраиваю FM следующим образом (я также установил для TransactionPerSession значение false, но это не имеет значения):
private IServiceProvider CreateServices()
{
var configBuilder = GetConfigurationBuilder();
var config = configBuilder.Build();
var connectionString = new ConnectionString(config["ConnectionString"]);
return new ServiceCollection()
.AddFluentMigratorCore()
.ConfigureRunner(rb => rb
.AddOracle()
.WithGlobalConnectionString(connectionString.Value)
.ScanIn(typeof(DbProjectHandle).Assembly).For.Migrations())
.AddSingleton<ILoggerProvider, LogFileFluentMigratorLoggerProvider>()
.Configure<LogFileFluentMigratorLoggerOptions>(opt =>
{
opt.OutputFileName = "MigrationLog.txt";
opt.ShowSql = true;
})
.Configure<RunnerOptions>(opt => { opt.TransactionPerSession = true; })
.BuildServiceProvider(false);
}
Есть ли что-то, что я могу сделать, чтобы заставить FM откатывать все вставки до точкипровал?