2024-08-04
【Tips - Drizzle】実例でわかるシリーズ
<前置き、挨拶>
みなさんどうも、こんばんみ~。ぎょうざです。
Webアプリ上などでデータベースとのやりとりを実装する際に便利なツール
Drizzle(ドリズル)を利用する際に、ぎょうざが躓いたところを備忘録として記録しておきます。
同じようなケースあるいは現象で困っている方の参考になれば幸いです。
【目次】
<Useful> ▶ 対応するデータベース(2023/06/25時点) ▶ Supabaseデータベースとの接続(Transaction ModeとSession Modeの使い分け) <Error> ▶ <Warn> ▶ 〆の一言
<Useful>
▶ 対応するデータベース(2023/06/25時点)
▶特徴(Pros. Cons.)
- 型完全なデータベース操作ができます
- 開発ライブラリに非依存です
- 自動でマイグレーションを生成してくれます
- Zodスキーマ生成ができます
- テーブル定義とクエリのためのSQLライクなシンタックスです
- レコード選択と挿入を別々に行うDBモデルのためのTS型の自動インファリングができます
- SQL関連の学習コストがやや高めです
▶ Supabaseデータベースとの接続(Transaction ModeとSession Modeの使い分け)
重要と思うポイントのみ
- .envファイルの
DATABASE_URL
には Transaction Mode のコネクションURI、DIRECT_URL
には Session Mode のコネクションURL - Transaction Mode では
pgbouncer=true
を環境変数としてURL内に追記することを推奨 - 開発環境の Transaction Mode では更に
connection_limit=1
も指定することを推奨
Supabase上でデータベースをPostgreSQLで作成した場合のDATABASE_URL
例:
postgresql://[データベースのUser]:[データベースのPassword]@[データベースのHost]:[Port]/postgres?pgbouncer=true&connection_limit=1
<Error>
▶
<Warn>
▶
〆の一言
Drizzleは、データベースとやり取りする中間ツールとして、とても優秀です!
Edge Computingに対応してい、簡単なデータベース操作が可能になります。
ここまで読んでいただき、ありがとうございました。
以上、ぎょうざでした。