cloudbeaverとは?
SQLクエリの実行やデータのインポート/エクスポート、ER図の作成など、DBeaverは便利ですよね。DBeaverチームが開発したブラウザベースのデータベース管理ツールであるCloudBeaverを使うと、これらの機能をブラウザからどこでも利用できます。リアルタイムでデータを更新したり複数のユーザーが同時にアクセスできたりとかなり便利なのですが、CloudBeaverに関する記事がほとんどなかったので使い方を書いてみます。
dockerコンテナを用いてCloudBeaverを利用する
dockerを用いてCloudBeaverに接続してみましょう。
cloudbeaver:
image: dbeaver/cloudbeaver:latest
container_name: CLOUDBEAVER
ports:
- "8080:8978"
depends_on:
- postgres
networks:
- TNet
logging:
driver: "none"
CloudBeaverの起動
docker-compose up -d
初期画面の確認
localhost:8080で接続すると無事初期画面が表示されました!
設定した管理者ユーザーでログインすると、新しくデータベースを接続することができます。
設定ファイルで自動設定する
上記のように手動で設定せずに設定ファイルを用いることもできます。
管理者ユーザーの設定
.cloudbeaver.auto.confファイルを用いて管理者ユーザーの設定を行うことができます。(保存場所は/opt/cloudbeaver/conf/.cloudbeaver.auto.conf)
CB_ADMIN_NAME=cbadmin
CB_ADMIN_PASSWORD=CBadmin123
CB_PUBLIC_URL=http://localhost:8080
CB_SERVER_NAME=testServer
データベース設定
data-sources.jsonファイルを用いてデータベースとの接続設定を行うことができます。(/opt/cloudbeaver/workspace/GlobalConfiguration/.dbeaver/data-sources.json)
{
"folders": {},
"connections": {
"trascenPostgresDBL": {
"provider": "postgresql",
"driver": "postgres-jdbc",
"name": "MY PostgreSQL Database",
"configuration": {
"host": "postgres",
"port": "5432",
"database": "my_db",
"url": "jdbc:postgresql://postgres:5432/my_db",
"configurationType": "MANUAL",
"type": "dev",
"closeIdleConnection": true,
"auth-model": "native",
"bootstrap": {
"autocommit": true
}
}
}
},
"connection-types": {
"dev": {
"name": "Development",
"color": "255,255,255",
"description": "Regular development database",
"auto-commit": true,
"confirm-execute": false,
"confirm-data-change": false,
"smart-commit": false,
"smart-commit-recover": true,
"auto-close-transactions": true,
"close-transactions-period": 1800,
"auto-close-connections": true,
"close-connections-period": 14400
}
}
}
これらのファイルをDockerfileを用いてコンテナ内にコピーします。
COPY data-sources.json /opt/cloudbeaver/workspace/GlobalConfiguration/.dbeaver/data-sources.json
COPY .cloudbeaver.auto.conf /opt/cloudbeaver/conf/.cloudbeaver.auto.conf
localhost:8080に接続し、.cloudbeaver.auto.confファイルで設定した管理者ユーザーでloginすると、すでにデータベースが接続されていることがわかります!
余談
設定ファイルについては、公式ドキュメントにもあまり記載がなく、調べてもあまり出てきませんでした。特にdata-sources.json内の
"provider": "postgresql",
"driver": "postgres-jdbc",
の設定ミスでのエラーに悩まされ、結局手動で設定した後、設定ファイルがどう変更されたかを確認することで正しい設定方法がわかりました。もしpostgres以外のデータベースのproviderやdriverの設定で困っているなら一度手動で設定してからコンテナ内のdata-sources.jsonファイルを確認してみるといいかもしれません。