スタートアップでの経験をもとに、FastAPIアプリを本番運用する際の実践的なベストプラクティスと規約をまとめたガイド。
fastapi/sqlmodel
SQLModelは、PydanticとSQLAlchemyをベースに、PythonのクラスでSQLデータベースを扱うための、FastAPIとの併用を想定したPythonライブラリです。
- スター
- 18,447
- フォーク
- 893
- 未解決の Issue
- 53
- 最終コミット
- 6 日前
これは何?
SQLModelでは、型アノテーションを使ってPythonのクラスとしてデータベーステーブルを定義できます。1つのクラスをSQLAlchemyのテーブルモデルとPydanticのデータモデルの両方として使えるため、データベースアクセスとリクエスト・レスポンスの検証で同じスキーマを二重に記述する必要がありません。
このライブラリはPydanticとSQLAlchemyの薄いレイヤーであり、両方のAPIをそのまま利用できます。selectベースの構文でクエリを実行したり、セッションを使ったりでき、必要に応じて内部のSQLAlchemy機能も利用できます。テーブルの作成には標準のSQLModelメタデータを使い、プロジェクトのサンプルではSQLiteを使用しています。
SQLModelはFastAPIの作者によって作られ、FastAPIとの互換性を考慮して設計されています。pipまたはuvでインストールでき、ライセンスはMITです。
主な機能
- 01型アノテーションを使い、1つのPythonクラスでテーブルとPydanticモデルを定義できます。
- 02SQLAlchemyをベースにしたselect形式のクエリとセッションを利用できます。
- 03リクエスト・レスポンスモデルとしてFastAPIと連携できます。
- 04内部のSQLAlchemyとPydanticの機能をすべて利用できます。
- 05エディターでの自動補完と、インラインでの型エラー表示に対応しています。
ユースケース
- SQLデータベースを読み書きするFastAPIサービスの構築。
- ORMのテーブルとAPIスキーマで重複するモデル定義の削減。
- 既存のSQLAlchemyアプリケーションをPydanticベースのモデルへ移行。
クイックスタート
- 1
公式インストールガイドに従って uv をインストールする
- 2
SQLModel をプロジェクトに追加する
uv add sqlmodel
トピック
よくある質問
- sqlmodel とは?
- SQLModelは、PydanticとSQLAlchemyをベースに、PythonのクラスでSQLデータベースを扱うための、FastAPIとの併用を想定したPythonライブラリです。 SQLModelでは、型アノテーションを使ってPythonのクラスとしてデータベーステーブルを定義できます。1つのクラスをSQLAlchemyのテーブルモデルとPydanticのデータモデルの両方として使えるため、データベースアクセスとリクエスト・レスポンスの検証で同じスキーマを二重に記述する必要がありません。
- sqlmodel は無料で使えますか?ライセンスは?
- sqlmodel は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- sqlmodel は今もメンテナンスされていますか?
- 活発にメンテナンス中。sqlmodel の最終コミットは 2026年10月15日 です。
- sqlmodel は何に使えますか?
- SQLデータベースを読み書きするFastAPIサービスの構築。 ORMのテーブルとAPIスキーマで重複するモデル定義の削減。 既存のSQLAlchemyアプリケーションをPydanticベースのモデルへ移行。
- sqlmodel のインストール方法は?
- 公式インストールガイドに従って uv をインストールする SQLModel をプロジェクトに追加する: uv add sqlmodel
- sqlmodel はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/fastapi/sqlmodel
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
PostgreSQL、MySQL、SQLite、MongoDBなどのデータベースに型安全にアクセスできる、Node.js向けTypeScript ORM。
Goの構造体をデータベースのテーブルに対応付け、関連付け、フック、トランザクション、マイグレーションに対応する多機能ORMです。
Data Mapper、Unit of Work、Identity Mapパターンに基づく、SQLとMongoDBに対応したTypeScript製Node.js ORM。
標準の型ヒントを使ってAPIを構築できるPython製Webフレームワーク。自動バリデーション、OpenAPIドキュメント、高いパフォーマンスを備えています。
LLMの生成時に出力を制約し、指定した型、正規表現、JSON Schema、文法に適合させるPythonライブラリ。