SQLiteで開発していたローカルWebアプリを、PostgreSQLへ移行する必要がありました。
ChatGPTに相談したところ、Supabaseという選択肢を提案してくれました。
「なるほど、PostgreSQLがサーバレスで使えるなら楽そう」と思い、Supabaseを採用してみたのですが……
DB接続情報の場所が分からず大苦戦。
この記事では、Supabaseの最新UIでPostgreSQL接続情報を探す方法、
そして FastAPI + SQLModel 環境でPostgreSQLへ切り替える手順をまとめます。
🔧 開発環境
- バックエンド:FastAPI
- フロントエンド:React
- DB:SQLite → Supabase(PostgreSQL)
✍️ なぜブログ化したのか?
ローカル開発では SQLite を使っていましたが、将来の運用も見据えてPostgreSQL への移行を決意。
ChatGPTに相談したところ、Supabaseを提案されました。
さっそく使ってみたものの…
「接続情報どこ!?見当たらない!!」
SupabaseのUIが変わっており、ChatGPTの回答通りに探しても全然見つからない。
おそらく、同じように迷う方が多いと思うので、この記事が参考になれば幸いです。
🛠 Supabase のセットアップ手順
① アカウント・プロジェクト作成
ここはネットに情報が多くあるので割愛します。
おすすめ記事: Supabaseの概要と環境構築(CraftStadium)
② PostgreSQL 接続情報の取得(ここがハマりポイント)
ChatGPTからは以下のような回答がありました。
最新UIでの「PostgreSQL接続情報」の探し方
- 「Settings」→「Database」または「Database Settings」へ移動
- 「Connection string」や「Connection info」セクションを探す
- ここに「接続文字列(Connection string)」や「Host」「Port」「User」「Password」などが個別に表示されているはずです。
- もし「Connection string」が直接見つからない場合は、下記の情報を組み合わせて自分で作成します。
…でも、Settingsにそんな項目ありませんでした。
✅ 正解:ヘッダーの「Connect(🔌)」アイコンから確認!
Supabaseの最新UIでは、プロジェクト画面右上の「Connect」ボタン(コンセントマーク)から接続情報を確認できます。
📷 接続情報の場所(画像)
🔌 Connect ボタンの場所

📋 接続情報一覧画面
🔄 FastAPI 側のDB設定をPostgreSQLに変更する手順
💡 使用ライブラリ
fastapi sqlmodel sqlalchemy uvicorn requests python-dotenv alembic psycopg2-binary
① .env ファイルを用意・設定
.env ファイルに以下を記述します:
DATABASE_URL=postgresql://postgres:<パスワード>@<db-name>.supabase.co:5432/postgres
<パスワード>、<db-name>はSupabaseの「Connect」で確認した情報に置き換えてください。
② database.py の修正
SQLiteからPostgreSQLへの切り替えは、以下のように書き換えます。
✅ 変更前(SQLite)
sqlite_file_name = "test.db" sqlite_url = f"sqlite:///{sqlite_file_name}" engine = create_engine(sqlite_url, echo=True, connect_args={"check_same_thread": False})
✅ 変更後(PostgreSQL)
import os from dotenv import load_dotenv from sqlmodel import SQLModel, create_engine load_dotenv() db_url = os.getenv("DATABASE_URL", "sqlite:///test.db") engine = create_engine(db_url, echo=True)
🔹 PostgreSQLでは
connect_args={"check_same_thread": False}は不要です。
③ Alembic の設定変更
alembic.ini の変更:
sqlalchemy.url =
空欄にしておきます。
alembic/env.py の変更:
import os from dotenv import load_dotenv load_dotenv() url = os.getenv("DATABASE_URL") # configオブジェクトにURLを設定 config.set_main_option("sqlalchemy.url", url)
これで .env 経由で接続できます。
④ 起動・マイグレーション確認
FastAPI起動:
uvicorn main:app --reload
DBマイグレーション実行:
alembic upgrade head
🎉 成功画面(画像)
PostgreSQLに接続された状態でFastAPIが起動できました!

✅ まとめ
| 項目 | ポイント |
|---|---|
| Supabase UIの罠 | 接続情報は「Settings」ではなく「Connect」ボタンから |
.envの記述 |
Supabaseの情報を正確に反映 |
create_engineの引数 |
SQLiteとPostgreSQLでは異なる(connect_args不要) |
| Alembic対応 | .envから接続情報を取得する構成に変更 |
💬 おわりに
Supabaseは簡単にPostgreSQLを使える便利なサービスです。
この記事が、これからSQLite→PostgreSQL(Supabase)に移行しようとしている方の助けになれば幸いです!
