gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 13:29:01 25 4
gpt4 key购买 nike

我正在开发一个 Multi-Tenancy 应用程序。我选择了“共享数据库/单独模式”方法。

我的想法是拥有一个默认架构 (dbo),并在部署此架构时对租户的架构进行更新 (tenantAtenantB , 租户C);换句话说,创建同步模式。

如何将租户架构与默认架构同步?

我使用的是 SQL Server 2008。

最佳答案

您首先需要一个表或其他机制来存储架构的版本信息。如果没有别的事,您就可以将应用程序和架构绑定(bind)在一起。没有什么比针对错误模式的应用程序版本更痛苦的了——失败、数据损坏等。

如果版本不正确,应用程序应该拒绝或关闭 - 当版本不正确时,您可能会受到一些打击,但可以保护您免受数据库损坏有值(value)数据的真正糟糕的一天。

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

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

当然,您应该始终对写入外部文件的数据库进行备份,最好使用人类可识别的版本号,以便您可以在脚本出错时找到它并恢复它。最终它只会计划弄清楚如何恢复和恢复。

<小时/>

我看到新的 VS 2010 中有某种模式升级工具,但我没有使用它。这可能对您也有用。

关于sql-server - 如何在 Multi-Tenancy 应用程序中更新所有租户的所有架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2967655/

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