LoginSignup
0
0

More than 3 years have passed since last update.

pgadmin4のテーブル構造

Posted at

はじめに

centos7で、pgadmin4 を利用してpostgresqlを参照しているが、毎回手動でサーバを登録するのが面倒なので、省力化する方法を考えてみました。

調べてみると

pgadmin4 のデータファイルは、centos7にインストールした場合、/var/lib/pgadmin/pgadmin4.db というファイルで管理されており、sqlite3 というRDBのようです。
※ pgadmin4 は yum でインストールしました

テーブル構造

# sqlite3 /var/lib/pgadmin/pgadmin4.db でDBにログインできます。
ログイン後は、
.schema コマンドで、テーブルの内容が出力されます。

いくつかテーブルがあるようですが、関係するテーブルは、
1. server_group
2. user
3. server
の3つのようです。

それぞれのテーブルは以下のような情報が格納されているようです。
 1. server_group

カラム名 内容
id シーケンス値
user_id userテーブルのidカラムの値
name 名称

 2. user

カラム名 内容
id シーケンス値
email pgadminにログインするときのID
password
active
confirmed_at
materpass_check

今回は、上記2テーブルについては、すでに登録されているものを使用しますので、最後のserverテーブルにinsertすべき値について考えてみます。

 3. server

カラム名 内容 insertした値(空白の個所は無視)
id シーケンス値 serverテーブルのidの最大値+1
user_id userテーブルのIDカラムの値 userテーブルから取得した値
servergroup_id servergroupテーブルのIDカラムの値 servergroupテーブルから取得した値
name 表示される名称 任意の値
host アクセス先DBのホスト名 アクセス先DBのIPアドレス(xxx.yyy.zzz.aaa)
port アクセス先DBのポート番号 通常は5432
maintenance_db postgrers
username アクセス先DBのユーザ名 同左
password パスワード(暗号化方式等は不明)
role
ssl_mode 'prefer'
comment
discovery_id
hostaddr
db_res
passfile
sslcert '/.postgresql/postgresql.crt'
sslkey '/.postgresql/postgresql.key'
sslrootcert
sslcrl
sslcompression
bgcolor
fgcolor
service
use_ssl_tunnel
tunnel_host
tunnel_port 22
tunnel_username
tunnel_authentication
tunnel_identity_file
connect_timeout
tunnel_password

アクセス方法

sqlを作成して、sqlite3コマンドで実行する方法もありますが、javaのプログラムからアクセスすることにしました。
jdbcドライバは、mavenの場合は以下のようになります。

<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.30.1</version>
</dependency>

Connectionの取得は下記のようになります。DriverManager.registerDriver()は不要のようです。

DriverManager.getConnection("jdbc:sqlite:/var/lib/pgadmin/pgadmin4.db")
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0