2.3. 数据库迁移
红帽构建的 Keycloak 可以自动迁移数据库架构,也可以选择手动迁移它。默认情况下,在第一次启动新安装时,数据库会自动迁移。
2.3.1. 自动关系数据库迁移
要执行自动迁移,请启动连接到所需数据库的服务器。如果服务器的新版本更改了数据库架构,它将被迁移。
在具有数百万记录的大型表中创建索引可能会非常耗时,并可能导致重大服务中断。因此,存在阈值来限制索引允许的记录数。使用 SQL 命令,服务器日志中会出现警告消息,稍后您可以手动应用。
要更改阈值,为默认的 connection- liquibase 供应商设置
属性:
index-creation-
threshold
kc.[sh|bat] start --spi-connections-liquibase-default-index-creation-threshold=300000
2.3.2. 手动关系数据库迁移
要启用对数据库模式的手动升级,请将默认 connections-jpa
供应商的 migration-strategy
属性值设置为 "manual" :
kc.[sh|bat] start --spi-connections-jpa-legacy-migration-strategy=manual
当您使用此配置启动服务器时,服务器会检查是否需要迁移数据库。所需的更改会被写入 bin/keycloak-database-update.sql
SQL 文件,您可以检查并手动针对数据库运行。
如果要更改导出的 SQL 文件的路径和名称,请为默认 connection- jpa 供应商设置
属性:
migration-
export
kc.[sh|bat] start --spi-connections-jpa-legacy-migration-export=<path>/<file.sql>
有关将此文件应用到数据库的详情,请查看您的相关数据库文档。将更改写入文件后,服务器会退出。