PlanetScaleからSupabaseに移行した

以前ブログに書いた通り、PlanetScale無料枠が4/8/2024を以て終了するので、運営しているサイトのデータベースをPlanetScaleからSupabaseに移行しました。

調査した記録はZennにまとめてあります。

Cloudflare D1、Vercel Postgresなど一通り見ていって、最終的にNeonとSupabaseどちらを使うかということになりました。

Neonは純粋なPostgreSQL機能だけを提供するDaaSで、SupabaseはPostgreSQLのほかにAuthやStorageなどの機能が含まれたFirebase likeなサービスです。

単純な料金比較だとNeonのほうが安いので、データベースのみだけ使い、かつそれなりのデータ量がある人はNeonのほうが良いと思います。

ただ、私はどちらも無料枠の範囲でしか使う気がなかったため、Supabaseを選んだ。決め手はリージョンとUIでした。

まずリージョンについて。

Neonは最短リージョンがシンガポールであるのに対し、Supabaseは東京リージョンが提供されています。シンガポールだと通信に約100msかかるので、東京リージョンを使えることに越したことはないです。

2つ目のUIについて。

これは個人的な好みですが、SupabaseのUIは非常に使いやすく洗練されています。非エンジニアも運用可能と謳っているだけあって、直感的なデータ操作が可能。

さらに、SupabaseはOSSであるため、このダッシュボード含めたGUI環境がDockerイメージとして提供されており、ローカル開発環境でも同じ操作が可能です。これが一番嬉しいポイントでした。

逆にNeonのほうがいいと思った部分は、データベースをブランチとして管理できることと、ブランチごとに(無料枠でも24時間ごとに)自動バックアップしてくれること。

Supabaseは無料枠だとバックアップ機能が付いていないので、pg_dumpで手動でバックアップすることで一旦は良しとしました。本格稼働するとしたら月$25払ってアップグレードするべきでしょう。

インフラ選定は楽しかったのですが、移行作業そのものは辛かった。

今回、MySQLからPostgreSQLにDBMSを変更したわけですが、意外とハマりポイントがありました。試行錯誤の結果、PlanetScaleのデータをCSVに吐き出してSupabase側でインポートする方法をとりましたが、今でもデータの崩れがないかしらと不安でしょうがないです。

results matching ""

    No results matching ""