首页 > 解决方案 > 如何使用 FluentMigration 在预览 sql 脚本中添加开始事务和回滚事务?

问题描述

我正在为我的 .Net 项目使用 FluentMigrator,并且我想创建一个 sql 脚本来在调用 dotnet fm migrate 命令时预览我的修改。

不幸的是,我们在生成的预览脚本中没有“开始事务”和“回滚事务”。几个月前,我们曾经根据我们的旧文件在脚本中包含这些命令。

如果我错过了命令行中的某些内容,您能告诉我吗?

在此先感谢,干杯,亚历克斯

dotnet fm migrate -p sqlserver2012 -a "mydll.dll" -c "Data Source=mydatasource" -o="Migrations/MigrationScript.sql" -V --preview

标签: c#sql.net.net-corefluent-migrator

解决方案


开始交易的一种方法是:

internal static void MigrateUp()
{
    var serviceProvider = CreateServices();

    // Put the database update into a scope to ensure
    // that all resources will be disposed.
    using (var scope = serviceProvider.CreateScope())
    {
        // Instantiate the runner
        var runner = serviceProvider.GetRequiredService<IMigrationRunner>();

        using(var runnerScope = runner.BeginScope())
        {
            try
            {
                runner.MigrateUp();
                runnerScope.Complete();
            }
            catch(Exception ex)
            {
                runnerScope.Cancel();
            }
        }
    }
}

推荐阅读