gpt4 book ai didi

c# - 自动化 EF 迁移 "Update-Database -Script"

转载 作者:IT王子 更新时间:2023-10-29 04:24:33 27 4
gpt4 key购买 nike

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

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

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

关于如何自动生成迁移 -> SQL 脚本的任何想法?也许有一些我不知道的 powershell 魔术技巧?

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

最佳答案

终于找到解决办法了。我不知道的是,可以从 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() 一起,您可以完全控制生成脚本的粒度。

关于c# - 自动化 EF 迁移 "Update-Database -Script",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14325137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com