我已经浏览了不同的文档,但没有找到任何解决这个问题的东西。我正在考虑在未来的项目中使用fluentmigrator,尽管对于暂存/生产实践必须通过dba进行架构更新。我被允许为其他环境做我想做的事情,如测试,开发和本地。

如果我必须编写脚本来进行更改,则该工具的目的完全失败。然而,它发生在我身上,如果我没有呢?所以我的问题是这样的:是否有可能让fluent migrate将sql脚本吐出到文件中,而不是实际运行事务?

在我的实验中,我创建了一个控制台应用程序,它使用与主项目相同的DAL程序集,并利用migrator逻辑,因此每当我运行控制台应用程序时,它都会从头开始更新db,我们使用TeamCity,所以认为让它运行应用程序并将脚本(作为工件)放在文件夹中作为DBA在环境中更新模式的构建过程中的一个步骤可能会很酷。

有帮助吗?

解决方案

FluentMigrator命令行运行器 将生成SQL脚本,而不将更改应用于数据库,如果您使用:

  • --preview=true
  • --output=true
  • --outputFilename=output1.sql

并且,如果您安装 FluentMigrator.工具包 除了 流动装置包, ,您将可以从迁移项目的构建输出目录访问命令行运行器(Migrate.exe).

注: 生成的脚本将包含插入到FluentMigrator版本表中。

其他提示

After reading Command Line Runner Options I'd use --verbose=true to output the sql script and --output to save it to a file. There seems to be no 'dry run' option however - you'll need to run the migration in some preproduction environment to obtain the script.

Give it a shot as I've admittedly never tried it.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top