3.3. 迁移数据库
Red Hat build of Keycloak 可以自动迁移数据库模式,或者您可以选择手动执行它。默认情况下,当您首次启动新安装时,数据库会被自动迁移。
在迁移数据库前,请关闭所有运行红帽构建的 Keycloak 节点的红帽构建。
默认 H2 基于 dev-file
数据库类型不支持迁移。
3.3.1. 自动关系数据库迁移 复制链接链接已复制到粘贴板!
要执行自动迁移,请启动连接到所需数据库的服务器。如果新服务器版本更改了数据库架构,则迁移会自动启动,除非数据库有太多记录。
例如,在包含数百万条记录的表上创建索引可能会非常耗时,并导致重要的服务中断。因此,自动迁移存在 300000
记录的阈值。如果记录数量超过这个阈值,则不会创建索引。相反,您可以使用 SQL 命令在服务器日志中找到可以手动应用的警告信息。
要更改阈值,请为 connections-liquibase
供应商设置 index-creation-threshold
属性:
kc.[sh|bat] start --spi-connections-liquibase-quarkus-index-creation-threshold=300000
kc.[sh|bat] start --spi-connections-liquibase-quarkus-index-creation-threshold=300000
3.3.2. 手动关系数据库迁移 复制链接链接已复制到粘贴板!
要启用数据库模式的手动升级,请将默认的 connection- jpa 提供者的
属性值设置为 "manual" :
migration-
strategy
kc.[sh|bat] start --spi-connections-jpa-quarkus-migration-strategy=manual
kc.[sh|bat] start --spi-connections-jpa-quarkus-migration-strategy=manual
使用此配置启动服务器时,服务器会检查是否需要迁移数据库。如果需要迁移,则需要更改将写入 bin/keycloak-database-update.sql
SQL 文件。您可以查看并手动对数据库运行这些命令。
要更改导出的 SQL 文件的路径和名称,请设置默认 connection- jpa 供应商的
属性:
migration-
export
kc.[sh|bat] start --spi-connections-jpa-quarkus-migration-export=<path>/<file.sql>
kc.[sh|bat] start --spi-connections-jpa-quarkus-migration-export=<path>/<file.sql>
有关如何将此文件应用到数据库的详情,请查看您的关系数据库文档。将更改写入到文件后,服务器将退出。