而不是自动更新db,生成具有流畅的nhibernate的sql脚本用于生产环境

时间:2014-02-27 19:20:22

标签: sql fluent-nhibernate ef-migrations fluent-migrator

我已经浏览了不同的文档,但没有找到解决这个问题的任何内容。我正在考虑将fluentmigrator用于未来的项目,但是暂存/生产实践必须通过dba进行模式更新。我被允许做我想要的其他环境,如测试,开发和本地。

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

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

2 个答案:

答案 0 :(得分:2)

FluentMigrator Command Line Runner将生成SQL脚本,而不使用对数据库的更改,如果您使用:

  • Display
  • --preview=true
  • --output=true

而且,如果除了FluentMigrator.Tools package之外还安装了FluentMigrator package,您将可以从迁移项目的构建输出目录(--outputFilename=output1.sql访问命令行运行器)。

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

答案 1 :(得分:0)

阅读Command Line Runner Options后,我使用--verbose = true输出sql脚本,并使用--output将其保存到文件中。似乎没有“干运行”选项 - 您需要在某些预生产环境中运行迁移以获取脚本。

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