KeycloakのDBをpostgreSQLに変更する
環境
- jdk 1.8.0
- keycloak 6.0.1
- postgreSQL 11.4
※使用する文字コードをutf-8に変更しておく
手順
postgreaSQLのJDBCドライバを以下のサイトよりダウンロード
PostgreSQL JDBC Download
※今回は42.2.6 JDBC 4を使用設定ファイル及びJDBCドライバを入れるディレクトリを作成
cd keycloak-x.x.x/modules/system/layers/keycloak/org mkdir postgresql cd postgresql mkdir main
設定ファイル作成・ドライバを移動
作成したmainディレクトリ内に以下のようなmodule.xmlを作成
<?xml version="1.0" ?> <module xmlns="urn:jboss:module:1.3" name="org.postgresql"> <resources> <resource-root path="postgresql-42.2.6.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
手順1でダウンロードしたJDBCのドライバをmain内に移動する
設定ファイルの変更
keycloak-x.x.x/standalone/configurationの設定ファイルを変更する ※動作モードによって変更するファイルが異なるが、今回はstandalone.xmlを変更
datasouresタグの以下の部分を次のように変更する
<!-- before --> <subsystem xmlns="urn:jboss:domain:datasources:5.0"> <datasources> ... <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}"> <connection-url>jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE</connection-url> <driver>h2</driver> <security> <user-name>sa</user-name> <password>sa</password> </security> </datasource> <drivers> <driver name="h2" module="com.h2database.h2"> <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> </driver> </drivers> </datasources>
<!-- after --> <datasources> ... <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}"> <connection-url>jdbc:postgresql://localhost/keycloak</connection-url> <driver>postgresql</driver> <security> <user-name>username</user-name> <password>username</password> </security> </datasource> <drivers> <driver name="postgresql" module="org.postgresql"> <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> </driver> <driver name="h2" module="com.h2database.h2"> <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> </driver> </drivers> </datasources>
同じファイルの以下の部分を書き換える
<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1"> ... <spi name="connectionsJpa"> <provider name="default" enabled="true"> <properties> <property name="dataSource" value="java:jboss/datasources/KeycloakDS"/> <property name="initializeEmpty" value="false"/> <property name="migrationStrategy" value="manual"/> <property name="migrationExport" value="${jboss.home.dir}/keycloak-database-update.sql"/> </properties> </provider> </spi> ... </subsystem>
手順は以上になります
- 参考サイト
- 閲覧数 7509
コメントを追加