首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动化EF迁移“更新数据库-Script”

自动化EF迁移“更新数据库-Script”
EN

Stack Overflow用户
提问于 2013-01-15 03:22:42
回答 1查看 13.8K关注 0票数 24

我正在使用EF迁移来跟踪对EF代码优先DB模型的更改。现在,我需要为每个迁移生成一个SQL脚本,以便可以将这组脚本传递给DBA。

我能够用Update-Database -Script ...生成SQL脚本。

然而,我想要自动化这一点。我希望SQL开关能接受一个指定将-Script写到何处的参数,但事实并非如此。此外,输出重定向不起作用,因为SQL脚本不是写入STDOUT,而是写入临时文件。我看不到从脚本中获取临时文件的方法。

您有什么想法可以自动生成迁移->脚本吗?也许有一些我不知道的神奇的powershell把戏?

编辑:顺便说一句,使用migrate.exe或任何其他“迁移感知”方法不是一个选项,必须提供SQL脚本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-15 22:01:32

最后我找到了一个解决方案。我不知道的是,可以从C#代码生成SQL脚本,如下所示:

代码语言:javascript
复制
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()一起,您可以完全控制所生成脚本的粒度。

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14325137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档