具有
多个数据库共享相同架构的多租户系统。开发和测试环境有多个示例租户。在VS2k13的SSDT/SQL项目中维护的Db模式。
从VS中自动发布到所有数据库的最简单方法是什么?
最简单的方法是创建一个调用 sqlpackage 的批处理文件或 powershell 脚本.exe使用/Action:Script 和 dacpac,它是项目的输出作为/SourceFile,每个数据库作为/TargetConnectionString
每个数据库在批处理中都有一行。
建议(无论如何我的建议)是使用像TeamCity或Tfs这样的CI服务器,该服务器监视签入,然后在签入发生时监视:
- 生成项目
- 使用 sqlpackage.exe 将 dacpac 与每个数据库/环境进行比较
- 根据数据库/环境,要么推送所有更改,要么为每个数据库生成部署脚本。
如果你从Visual Studio发布,你没有严格的过程:
- 本地
- 开发代码,本地测试
- 签入代码 - 合并代码
- 理想情况下,将更改推送到 CI 数据库并运行单元测试/集成测试
- 生成/部署到特定数据库
艾德