我正在使用EF迁移来跟踪对EF代码优先DB模型的更改。现在,我需要为每个迁移生成一个SQL脚本,以便可以将这组脚本传递给DBA。
我能够用Update-Database -Script ...生成SQL脚本。
然而,我想要自动化这一点。我希望SQL开关能接受一个指定将-Script写到何处的参数,但事实并非如此。此外,输出重定向不起作用,因为SQL脚本不是写入STDOUT,而是写入临时文件。我看不到从脚本中获取临时文件的方法。
您有什么想法可以自动生成迁移->脚本吗?也许有一些我不知道的神奇的powershell把戏?
编辑:顺便说一句,使用migrate.exe或任何其他“迁移感知”方法不是一个选项,必须提供SQL脚本。
发布于 2013-01-15 22:01:32
最后我找到了一个解决方案。我不知道的是,可以从C#代码生成SQL脚本,如下所示:
using System.Data.Entity.Migrations;
using System.Data.Entity.Migrations.Infrastructure;
var migrator = new DbMigrator(new Configuration());
var scriptor = new MigratorScriptingDecorator(migrator);
var sql = scriptor.ScriptUpdate("Name-Of-Source-Migration", "Name-Of-Target-Migration");与migrator.GetLocalMigrations()一起,您可以完全控制所生成脚本的粒度。
https://stackoverflow.com/questions/14325137
复制相似问题