Tigase 数据库 sql 文件使用

使用修改的数据库文件

如果您使用的 Tigase XMPP 服务器具有修改的架构(更改的过程或表),并且不希望 Tigase XMPP 服务器维护它并自动升级,则可以对任何数据源禁用架构管理。如果对特定数据源禁用了模式管理,那么 Tigase XMPP 服务器将不会以任何方式更新或修改数据库模式。此外,它不会检查架构版本是否正确。
Disabling schema-management for default data source

dataSource {
    default () {
        uri = '...'
        'schema-management' = false
    }
}
注意
如果 schema-management 无效, 管理员负责维护数据库模式,并在需要时对其进行更新(即,如果 Tigase XMPP 服务器模式已更改)。

数据库文件维护

本文档描述了架构文件的布局及其假设。此外,它还描述了更新的方式和时间。

假设如下情况

所有模式文件都可以多次加载 - 这是迄今为止最重要的假设,它允许在不显式和详细检查加载版本的情况下离开(它已经在 8.0.0 版的模式级别上处理)

所需的架构版本是根据组件版本计算的(在项目配置文件中设置 - 通常是 pom.xml,但可以通过注释在代码中覆盖它 - 有关详细信息,请参阅服务器文档中的 Developer Guild)

我们将维护“3 个版本的架构文件”,即在分发包中,我们将提供当前版本的架构版本和后面的两个主要版本(以及所有维护版本的架构文件),这将允许快速升级,即使是较旧版本

快照版本将打印一个日志条目,指示架构中可能已发生更改,建议运行升级(我们的目标是频繁发布,因此仅对最终版本执行强制架构版本检查)

检查

如果可以升级数据库文件(基于数据库中的当前架构版本和可用的 SQL 文件及其各自的版本);

如果在服务器启动期间需要升级架构(直到 7.1.x[包括 7.1.x] 它只在 tigase 服务器上完成,将由所有组件完成)

如果在运行升级架构期间需要升级架构(如果架构已处于所需的最新版本中,则不需要执行所有 SQL 文件,因此可以加快升级速度)

在快照版本启动期间,即使架构版本匹配,在 logs/tibase-console.log 中也会打印重新运行升级架构的提示

计划文件布局

基本方案文件名布局由 3 个基本部分组成:
关系数据库管理系统(RDBMS)的名称(如 derby、mysql、postgresql、sqlserver);
预期使用的 Tigase 组件的名称;
架构文件的版本。

对于每个组件和版本,可以(但不是强制)将所有与数据库相关的功能拆分为多个文件,但必须将它们链接 / 包含在特定数据库 / 组件 / 版本文件的基文件中。这允许分离存储过程(-sp)、基本架构和设置属性(-props)。原则上,文件名模式如下
<RDBMS_name>-<tigase_component>-schema-<version>[-<sub_schema>].sql
例如,用于 Derby 的 Tigase Server 7.0.0 版的架构文件如下所示:
derby-server-schema-7.0.0-schema.sql

文件构成

如前所述,我们应该支持与旧的 stable、stable 和 master 匹配的所有版本,这将转换为当前版本后面的两个主要版本,即 version:current version-2)。这将导致在任何给定时间存储库中有 3 个版本的架构(其中两个版本是“升级”到最旧的基本架构):

当前版本减 2:基本架构
当前版本减 1:从当前版本减 2 到当前版本减 1 的所有更改
当前版本:从当前版本减 1 到当前版本的所有更改

注意
当前版本必须始终与组件的版本匹配(在 pom.xml 中定义)。

注意
有可能在版本中有多个文件(与较小的维护升级相关),因为 SchemaLoader 将收集所有版本在范围和内的文件。

  
    展开阅读全文