AI interface を持つ In-browser Posgres, postgres.new を試す
Firebase の代替としても使えるサービス supabase.com が In-browserで動く Postgres サンドボックス https://postgres.new/ をリリースしていたので、試してみる
まずブラウザで Postgres が動くとはどういうことかというところからびっくりしたが、これは WASM 版の Postgres 実装である https://pglite.dev/ を使っているとのこと。
なにはともあれ、とりあえず触ってみる
起動すると ChatGPT チックなUIが現れる。なるほど右側に作りたいものを入力しろということらしい
とりあえず適当にECサイトを作りたいです、と言ってみる
このようにデータの構造が提案される。そして最後に「これらのテーブルを作成しましょうか?」と聞かれるのでお願いする。
すると以下のようなER図が作成され、
CREATE TABLE 文も作成される。
これの1つ面白いところは、バックエンドには PGlite がいるので、LLM がただ DDL を生成しているだけではなく、裏側で PGlite に対して DDL を実際に実行しており、ブラウザの IndexedDB 上でデータが実際に作成されていること。
さて、作成されたが、これだけでは物足りないので、なにかテストデータをいれてみたい
このようにテストデータも用意して、そのためのSQLも作成される。
あとはクエリしたい内容を聞けば、考えてくれたり、グラフにしてくれたりする
と、色々といじれて面白い。
ちなみに ER図は PGliteのテーブルを読み込み、visualizerで描画してるとのこと。
Migration の SQL はどうやって表示してるんだろ?と思ったが
と、割と泥臭く頑張っていて良い。
あと蛇足ではあるが、カラムを追加したい、と宣言するとちゃんとalter文で生成してくれる
さて、ざっと見てみたが、このツールはどう使うんだろう、と思ったので開発ブロクも読んでみる
開発陣が書いている postgres.new のモチベーションは以下
AI Driven な開発のためのツール
Postgres のサンドボックス環境を作る
圧倒的に安いデータベース
postgres.new が開発ツールとして便利そう、なのはわかるけど、ざっと試した感じは In-browser で Postgres 動いてすごいなぁ、みたいで終わってしまうが、そもそも使っている技術である PGlite でもっと開発体験を変えることが目的で、そのためのツールである位置づけっぽいなと思った
というのも、 postgres.new は現状では CSV での export ぐらいしかなく、作成された DDL は postgres.new の外で利用するしかない。
しかし今後は S3 への PGlite の Deploy をサポートする予定とのこと。前述した local-first 開発もそうだけど、ブラウザで Postgres が動くことで、ユーザ1人1人に対する database や、replicate された高速な read-only DB としての使い方などもできる、と記事でも言っている
そのための周辺ツールも supabase は開発しており(例えば PGlite に wire protocol 経由で接続する pg-gateway (https://github.com/supabase-community/pg-gateway))、 熱意を感じる。
postgres.new 自体はいまは Sandboxとして遊べる環境のみであるが、PGlite や pg-gateway などを用いた local に DB がある開発、というものが今後どうなっていくかにも興味が持てて、とても良い機会だとおもうので、気になる方は触ってみてほしい。
ちなみに脱線するので省くが、 https://supabase.com/blog/postgres-new にある PGlite の技術詳細も面白いのでぜひ
この記事が気に入ったらサポートをしてみませんか?