🐘
TablePlusからPostgreSQLに接続する
What TablePlus?
TablePlusとはデーベースにGUIのデスクトップアプリケーションで操作をして接続するクライアントツールです。
有料のツールですが無料で使うこともできます。私は有料版を契約しております。MacとiOSユーザー限定になりますが、setappというサブスクサービスに登録すると他のサービスと一緒に安く使えます✨
以前別のアカウントで投稿した記事を改良して作ってみたPostgreSQLのdocker-compose
を使ってローカルに環境を作成して使ってみようと思います。
手順は、GitHubのREADMEにも記載しております。
🔗公式の手順や国内の記事のリンクも貼っておきます。
Postgreコンテナを構築する
docker-composeを使用して、PostgreSQLの環境構築をする。
ちょっと古いバージョンでもいいかなと思いつつも16.9あたりで今回イメージを使用いたしました。
🔗DockerHubのリンク
-
.env
ファイルを作成し、以下の内容で環境変数を設定する
※このファイルがないとdocker compose up -d
実行時にエラーになります。
touch .env
POSTGRES_VERSION=16.9
CONTAINER_NAME=company_db # お好きに
HOSTNAME=pgsql-db # お好きに
USER_NAME=postgres # ユーザー名
USER_PASS=postgres # パスワード
-
compose.yaml
を作成する。
touch compose.yaml
services:
pgsql_db:
image: postgres:${POSTGRES_VERSION}
container_name: ${CONTAINER_NAME}
hostname: ${HOSTNAME}
ports:
- "5432:5432"
restart: always
environment:
- POSTGRES_USER=${USER_NAME}
- POSTGRES_PASSWORD=${USER_PASS}
volumes:
- db_vol:/var/lib/postgresql/data
volumes:
db_vol:
- コンテナを起動する
※必ず.env
ファイルを作成し、必要な変数を設定してから実行してください。
docker compose up -d
- コンテナを削除する場合は以下のコマンドを実行する。
docker compose down
- TablePlusに接続する。
アプリを開いて右クリックして、New -> Connection
- データベースを作成する。
CREATE DATABASE company_db;
成功するとこのようなlogが表示される。
SQLのクエリを実行する。create -> insert -> select
-- `employees` テーブルが存在する場合は削除する
DROP TABLE IF EXISTS employees;
-- 新しく `employees` テーブルを作成
CREATE TABLE employees (
id SERIAL PRIMARY KEY, -- 従業員ID (自動採番)
name TEXT NOT NULL, -- 従業員名
position TEXT, -- 役職
salary INTEGER -- 給与
);
-- 初期データを挿入
INSERT INTO employees (id, name, position, salary) VALUES
(1, 'Tanaka', 'Manager', 5000),
(2, 'Suzuki', 'Developer', 4000),
(3, 'Yamada', 'Designer', 3500);
SELECT * FROM employees;
Comparison with other tools
DBeaverというデスクトップのアプリを以前使用していたのですが、最近はTable Plusを仕事で使う機会があり、友人のSREもおすすめしていたので使ってみましたが、JDBCドライバーをインストールしなくても接続できたので、ソフトをダウンロードして接続するだけで使い始めることができるので、環境構築と簡単設定ができるツールを求めている方にはおすすめです。
有料版契約してるので勿体無いですしね💸
pgAdminというツールもありますが、個人的に操作がしずらいなという感覚でして必要でない限り使わなくなりましたね。
Discussion