Repolode
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. 1

    公式インストールガイドに従って uv をインストールする

  2. 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 の数値は毎日更新されます。

関連プロジェクト