0

我浏览了不同的文档,但没有找到任何解决此问题的内容。我正在考虑将 fluentmigrator 用于未来的项目,尽管对于登台/生产实践必须通过 dba 进行模式更新。我可以为其他环境(例如测试、开发和本地)做我想做的事情。

如果我必须编写脚本来进行更改,那么该工具的目的就完全失败了。但是,我突然想到,如果我没有呢?所以我的问题是:是否有可能让流利的迁移将 sql 脚本吐出到文件中,而不是实际运行事务?

在我的实验中,我创建了一个控制台应用程序,它使用与主项目相同的 DAL 程序集,并利用迁移器逻辑,因此每当我运行控制台应用程序时,它都会从头开始更新数据库,或者根据我的选择从最近的点更新数据库. 我们使用 TeamCity,因此认为让它运行应用程序并将脚本(作为工件)放在文件夹中作为我们 DBA 在环境中更新架构的构建过程中的一个步骤可能会很酷,我自己会皱眉头。

4

2 回答 2

3

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

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

而且,如果除了 FluentMigrator 包之外还安装了FluentMigrator.Tools您将可以从迁移项目的构建输出目录 ( ) 访问命令行运行器Migrate.exe

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

于 2016-02-02T16:30:41.723 回答
0

阅读命令行运行器选项后,我将使用 --verbose=true 输出 sql 脚本并使用 --output 将其保存到文件中。但是,似乎没有“试运行”选项 - 您需要在某些预生产环境中运行迁移才能获取脚本。

试一试,因为我承认从未尝试过。

于 2014-03-17T12:42:32.187 回答