加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 如何在多租户应用程序中更新所有租户的所有架构?

发布时间:2020-12-12 06:43:18 所属栏目:MsSql教程 来源:网络整理
导读:我正在开发一个多租户应用程序.我选择了“共享数据库/单独模式”方法. 我的想法是拥有一个默认模式(dbo),并在部署此模式时,对租户的模式(tenantA,tenantB,tenantC)进行更新;换句话说,制作同步模式. 如何使用默认架构同步租户的架构? 我正在使用SQL Server 20
我正在开发一个多租户应用程序.我选择了“共享数据库/单独模式”方法.

我的想法是拥有一个默认模式(dbo),并在部署此模式时,对租户的模式(tenantA,tenantB,tenantC)进行更新;换句话说,制作同步模式.

如何使用默认架构同步租户的架构?

我正在使用SQL Server 2008.

解决方法

您需要的第一件事是用于存储架构的版本信息的表或其他机制.如果没有别的,那么您可以将应用程序和架构绑定在一起.没有什么比一个版本的应用程序对错误的模式 – 失败,破坏数据等更痛苦.

应用程序应拒绝或关闭,如果它不是正确的版本 – 当它不正确时你可能会得到一些反弹,但保护你免受数据库破坏有价值数据的真正糟糕的一天.

您需要一种方法来跟踪更改,例如Subversion或其他 – 从SQL可以导出初始模式.从这里开始,您将需要一种机制来使用SQL比较等漂亮工具跟踪更改,然后跟踪架构更改并匹配目标数据库中版本号的更新.

我们将每个delta保存在我们构建的升级实用程序下面的单独文件夹中.此实用程序登录到服务器,读取版本信息,然后应用数据库中下一个版本的转换脚本,直到它的子文件夹中找不到更多升级脚本.这使我们能够升级数据库,无论它与当前版本的年龄有多大.如果租户有独特的数据转换,这些将变得棘手.

当然,您应该始终备份写入外部文件的数据库,最好使用人类可识别的版本号,这样您就可以找到它并在脚本出现故障时恢复它.最终它只会计划如何恢复和恢复.

我看到新VS 2010中有某种架构升级工具,但我还没有使用它.这可能对你有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读