Entity Framework 在外部 SQL 服务器上进行代码优先迁移(通过 VPN)

Entity Framework code-first migration on external SQL Server (over VPN)

是否可以使用 EF 代码优先 add-migration(在开发机器上)生成迁移脚本并在产品 SQL 服务器上使用它,该服务器只能通过 VPN(客户端内部网络)访问?我们无法从开发机器连接到生产数据库,因此我们无法调用 update-database 命令。

如果不是,您知道如何生成 insert/update 可用于生产的查询 SQL Server Management Studio 吗?

谢谢, 彼得

如果我没理解错的话,你想要来自 EF 的 SQL 脚本 并且你希望它在 Production.

处执行

如果是,则在包管理器控制台运行中执行以下操作

Update-Database -Script

-Script : Generate a SQL script rather than executing the pending changes directly.

脚本生成后,会在 Visual Studio 中为您打开,供您查看或保存

简要

如果您希望将所有最新更改表示为 SQL 脚本,您可以 运行 在 PM 控制台中执行以下命令

Update-Database -script -SourceMigration NameOfTheLatestMigrationOnTheServer


详细

您可以手动生成SQL脚本,只需运行以下命令:

Update-Database -Script

Code First 迁移将 运行 迁移管道,但它不会实际应用更改,而是会为您将更改写入 .sql 文件。脚本生成后,会在 Visual Studio 中为您打开,供您查看或保存。

您可以指定要为其生成脚本的源和目标迁移。

Update-Database -Script -SourceMigration: "LastMigration" -TargetMigration: "MigrationTo"

如果您不指定目标迁移,迁移将使用 最新的迁移作为目标。

如果您不指定来源 迁移,迁移将使用数据库的当前状态。

调查 Getting a SQL Script 部分了解更多详情。