やってみたらできたので一応書いておくけど、正直なところ微妙かも。
2023/11/10: 追記
DrizzleKitのアップデートによって、正式にD1の対応が入った。
https://github.com/drizzle-team/drizzle-kit-mirror/releases/tag/v0.20.0
ただし、wrangler d1 execute
を使う関係で遅いかもって書いてあるので、ローカルにあるDBを覗きたいだけなら、以下の方法がまだ使える。
用語の紹介
- Drizzle Studio
- ORMであるDrizzleが提供する、ローカルでDBを閲覧できるGUI
- Cloudflare D1
- SQLiteをCDNエッジで使えるようにしたやつ
- ローカルでの開発は、
miniflare
の実装を経由しつつも.sqlite
ファイルが使われる
というわけで、Drizzle Studioに対して、その.sqlite
ファイルを通してあげればよい。
やり方
まずは、drizzle.config.ts
に以下を追記する。
// ...
driver: "better-sqlite",
dbCredentials: {
url: ".wrangler/state/v3/d1/miniflare-D1DatabaseObject/6389830e7b3f2a469bc78ee91e9e8baee5e3548baebe608e533164f402c1aa1e.sqlite",
},
D1用のドライバーはサポートがなく定義もされてないので、とりあえずSQLite互換ものを入れてごまかす。
url
はそれぞれ違うけど、自分で明示してない限りは.wrangler
配下にあるはず。
そしてbetter-sqlite3
をインストールして、devDependencies
にでも追加しておく。
ここまでやれば、あとはdrizzle-kit studio
コマンドで起動するだけ。
おしまい。
TablePlusでいい
- そもそも無理やりやってる
- 使ってない
better-sqlite3
に依存したくない - Drizzle Studio自体の機能も豊富ではない
- テーブルを一覧・フィルタできるくらい
- 行の追加、更新や削除はもちろんできるけど
- 任意のSQLを発行(JOINしたい)したりできない
コマンドで起動してブラウザが開いてこれしかできないなら、最初からTablePlusで.sqlite
ファイルを開いたほうが速いし高機能。
もう少し機能がありつつ、KVやR2の中身も覗けるビューワー、やっぱ作ろうかな・・。