以前から、Deno とデータベースをつなぐ記事をいくつか書いている。
今回は、最近よく見かけるようになった PlanetScaleを、Deno でアクセスしてみる。
参考
- PlanatScale - Documentation - The PlanetScale serverless driver for JavaScript
- github - planetscale/database-js
導入
上手くいかないこと
PlanatScale を Node.js で接続する方法など親切に記載があり、参考に mysql2 を esm.sh から読むことで代替してみたが、これらは上手くいかなかった。
ベータ版機能として、JavaScript 向けサーバレスドライバーというのが有るのでそちらを使っていく。
ただし、データベースドライバーと書かれつつ Fetch 互換のドライバーであることは認識しておくべきだろう。
PlanatScale 側設定
The PlanetScale serverless driver for JavaScript に記載された方法で設定する。
設定したら、データベースの詳細 の「connect」を開く。
Connect with の選択候補に @planetscale/database が増えているので、こちらを参考にしていく。
.env に環境変数周りの設定は記載しておく。
実装
実装は以下の通り。
1 | import "https://deno.land/std@0.153.0/dotenv/load.ts"; |
(たぶんこのクエリの実行がされた瞬間そこはきっと「さよならタロウ」時空である)
fetch API 互換のドライバーということで明確に .end()
しないのは、それは確かにそうという感じ。
ちゃんとトランザクション対応してるのがすごくイイ。
select の結果もオブジェクトで返ってくるので、このまま使えるのもすごくいいだろう。
というところで、PlanetScale に Deno で接続で接続してみた。
deno.land/x - Nessie には接続先の定義として PlanetScale の定義はなさそうである。
これ出たら、喜ぶ人が一定数いるんではなかろうか。
では。