我正在尝试使用Docker Image for Keycloak,但我似乎无法为PostgreSQL中创建的表设置架构。
目前,所有表都以公共架构结束。有没有办法可以指示Keycloak在模式中创建表?
答案 0 :(得分:0)
您应该能够为数据源指定POSTGRES_DATABASE
env变量:
docker ... -e POSTGRES_DATABASE=<your_database_name> ...
默认情况下,它应该使用数据库名称'keycloak'
,所以你不会看到它很奇怪:
/subsystem=datasources/data-source=KeycloakDS: add(jndi-name=java:jboss/datasources/KeycloakDS,enabled=true,use-java-context=true,use-ccm=true, connection-url=jdbc:postgresql://${env.POSTGRES_ADDR:postgres}:${env.POSTGRES_PORT:5432}/${env.POSTGRES_DATABASE:keycloak}, driver-name=postgresql)
<强>更新强>
抱歉,我明白你的意思了。在这种情况下,我认为您必须在数据库中手动创建架构,然后更新standalone.xml
以使用您的架构:
<spi name="connectionsJpa">
<provider name="default" enabled="true">
<properties>
<property name="dataSource" value="java:jboss/datasources/KeycloakDS"/>
<property name="initializeEmpty" value="true"/>
<property name="migrationStrategy" value="update"/>
<property name="migrationExport" value="${jboss.home.dir}/keycloak-database-update.sql"/>
<property name="schema" value="your_schema"/>
</properties>
</provider>
</spi>
看起来他们是don't support automatic schema creation,因此您可能需要提交功能请求。