Как включить откат при сбое с помощью Fluent Migrator? - PullRequest
0 голосов
/ 23 октября 2019

Я использую 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 откатывать все вставки до точкипровал?

...