Visual Studio C#:无需修改连接字符串,用Update-Database更新线上数据库
无需修改配置,强制Code-First迁移到线上数据库
问题背景
我有一个部署在线上的C# Code-First项目,在Visual Studio控制台执行Update-Database命令时,默认会更新本地数据库;修改配置文件中的连接字符串为线上地址后,才会更新生产环境的线上数据库。
我希望不用修改配置里的连接字符串,就能让Update-Database直接使用线上连接字符串执行更新。目前代码通过IIS配置的命令行变量区分本地/线上环境,实现了业务代码的分支逻辑,但Update-Database始终读取当前配置的连接字符串。平时我在本地用这个命令做开发迁移,发布前需要用它更新线上库,之前发现Update-Database 0的用法很实用,推测这个命令还有更多参数,但没找到官方文档,想了解更多可用选项。
解决方案
直接使用Update-Database的-Connection参数指定线上连接字符串即可,完全不需要修改配置文件:
Update-Database -Connection "你的线上数据库连接字符串"
补充:Update-Database常用实用参数
除了-Connection,还有几个高频使用的参数可以满足不同场景:
-TargetMigration: 指定目标迁移版本,比如Update-Database -TargetMigration "InitialCreate"会将数据库更新/回滚到初始迁移;输入0则会回滚所有迁移(你之前用的Update-Database 0其实是该参数的简写)-Script: 不实际执行迁移,生成对应的SQL脚本,方便预览或手动执行迁移语句-Force: 强制执行迁移,即使存在可能导致数据丢失的自动迁移操作也会运行-ProjectName: 当解决方案包含多个类库时,指定要使用的迁移项目-StartupProjectName: 指定启动项目,确保迁移工具读取正确的配置上下文
内容的提问来源于stack exchange,提问作者Sigma3Wolf
相关产品推荐
相关产品推荐

