Astro Studio が無くなるので接続先を Turso にする

2024/10/01に公開

概要

九月半ば、Astro DB に関する変更がアナウンスされました。

https://astro.build/blog/goodbye-astro-studio/

これまでの Astro DB は Astro Studio というプラットフォームを使用することが前提となっていたのですが、Astro Studio は廃止されることになりました。

その代わりに あらゆる libSQL データベースに接続可能になります。

接続先の例として挙げられているのは Turso です。
元々 Astro Studio は Turso のラッパーみたいなものだったので、今後は直接 Turso を使えることになったというわけですね。

ということで Astro DB のリモートの接続先を Turso にしてみます。

環境

  • astro: 4.15.9
  • @astrojs/db: 0.14.1
    • libSQL データベースに接続するには 0.14.0 以上のバージョンが必須

ソースコード

動作確認のために下記の記事で作成したソースコードを流用しました。

https://zenn.dev/k1350/articles/0f8466f2858f71

ソースコード全文は下記にあります。

https://gitlab.com/k1350/astro-db-test

Turso に接続してみる

最初に述べておくと、別途データベースの中身を移行する必要はありますが、接続先を変更すること自体は設定する環境変数を変更するだけで可能です。
ソースコードに何か変更を入れる必要はありませんし、もちろんローカル環境での開発もこれまで通りです。
この記事を書き始めた時点ではもう少し書くことがあるかと思っていたのですが、あまりに簡単だったためほとんど書くことがありません。

早速 Turso のドキュメントを参照してデータベースを作ります。

https://docs.turso.tech/quickstart

Turso CLI をインストールしてログインしてから

turso db create [db_name]

でデータベースを作成。それから

turso db show [db_name]

で接続先情報が出ます。ここで出てきた libsql:// から始まる URL を ASTRO_DB_REMOTE_URL という環境変数に指定します。

次に

turso db tokens create [db_name]

でトークンを発行し、それを ASTRO_DB_APP_TOKEN という環境変数に指定します。

これで Turso への接続準備は終わりで、後は Astro Studio を使っていたときと同じです。

astro db push --remote

で Turso に対してスキーマを push できます。
デプロイ先では環境変数を設定した上で

astro build --remote

で Turso に接続した状態でビルドされてデプロイされます。

なお 2024/09/29 現在、Cloudflare Pages にはデプロイできるものの DB への接続に失敗します。
Vercel ではうまく動きましたので、お試しの際は Vercel にデプロイすることをお勧めします。

また既に Astro Studio にデータがある場合は別途データを移行する必要があるので、マイグレーションガイドを参照してください。

https://docs.astro.build/en/guides/astro-db/#migrate-from-astro-studio-to-turso

データベースのダンプファイルを投入するだけなので大した手間では無さそうです。

まとめ

私見としましては、やろうと思えば DB のセルフホスティングもできるようになりましたし、より多様なニーズに応えられるようになって良い変更だと思います。

Astro Studio を以前触った感覚ではまだ色々と機能が足りず、実用段階ではないかな……という感じでしたし、餅は餅屋に任せたほうが良いでしょう。

Astro DB 自体がデプロイ先によっては不安定な点さえ解消されれば活用していけそうです。

chot Inc. tech blog

Discussion