Site icon image World Hacker(ぎょうざブログ)

Think Different, Connect Dots for Line.

【Tips - Drizzle】実例でわかるシリーズ

<前置き、挨拶>

みなさんどうも、こんばんみ~。ぎょうざです。

Webアプリ上などでデータベースとのやりとりを実装する際に便利なツール

Drizzle(ドリズル)を利用する際に、ぎょうざが躓いたところを備忘録として記録しておきます。

同じようなケースあるいは現象で困っている方の参考になれば幸いです。

【目次】

<Useful>

▶ 対応するデータベース(2023/06/25時点)
Image in a image block

▶特徴(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に対応してい、簡単なデータベース操作が可能になります。

ここまで読んでいただき、ありがとうございました。

以上、ぎょうざでした。