OSS探訪GitHubでログイン

SQL式とORMを同じ基盤で扱い、PythonからリレーショナルDBを操作するデータアクセス基盤

OSS規模スコア 286.7OSS健全度 100
スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
12,201
主要言語
Python
ライセンス
MIT
リポジトリ最終更新
2026/10/06
ページ内ナビ

概要

SQLAlchemyはPython向けのSQLツールキット兼ORMです。SQL式・接続・トランザクション・コネクションプールを扱うCoreと、identity map・unit of work・data mapperを備えたORMを同じ基盤で提供し、必要な抽象度を選びながらリレーショナルDBへアクセスできます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

CoreでSQL式・接続・トランザクション・スキーマを明示的に扱う

Engineを接続先の中心として作成し、SQL Expression Language、schema metadata、connection pooling、型変換、DBAPI連携をCoreから利用できます。ORMを使わずSQLに近い粒度で構成することもできます。

出典:[2][4]

ORMでidentity map・unit of work・relationship loadingを組み合わせる

ORMはdata mapper、identity map、unit of workを基盤に、declarative mapping、関連オブジェクトのloading、リレーショナルなquery構成を提供します。ORMでもSQLのjoin・subquery等を明示的に組み立てられます。

出典:[2]

向いている用途

ORMの生産性とSQL制御の両方を必要とするPythonバックエンドに向く

CRUD中心の業務アプリから複雑なSQLを扱うサービスまで、同じproject内でORMとCoreを使い分けたい場合に適します。DB固有のdriverを選びつつ、接続・transaction境界をapplication側で明示できます。

出典:[2][3]

導入前の確認

2.1.3はPython 3.11以上。DB driverとtransaction境界を別途決める

SQLAlchemy 2.1.3はPython 3.11以上を要求し、PostgreSQL・MySQL・Oracle等のdriverは用途に応じた追加依存です。Connectionは自動でcommitされないため、Engine.begin()やConnection.commit()等でtransaction境界を設計します。2.1.3はORMとSQL compilerのregression修正を含むため、2.1系更新時はmapping順序やSQL生成を回帰確認してください。

出典:[3][5][6]

参考にした公式資料

  1. [1]sqlalchemy/sqlalchemy — GitHub repository(2026-10-06)
  2. [2]SQLAlchemy 2.1.3 — README(2026-10-06)
  3. [3]SQLAlchemy 2.1.3 — pyproject.toml(2026-10-06)
  4. [4]SQLAlchemy 2.1 tutorial — Engine(2026-10-06)
  5. [5]SQLAlchemy 2.1 tutorial — Transactions(2026-10-06)
  6. [6]SQLAlchemy 2.1.3 release(2026-10-06)
  7. [7]SQLAlchemy MIT license(2026-10-06)
編集部からの補足

ORMだけでなくCoreを独立して使えるため、抽象化を固定せずSQL制御へ降りられる点が強みです。導入時はDB driver、transaction境界、Sessionのlifecycleをapplication全体で揃えると運用しやすくなります。

3ステップで試す

  1. 1

    SQLAlchemy 2.1.3を導入する

    確認対象の安定版を固定して導入します。SQLAlchemy 2.1.3はPython 3.11以上が必要です。

    python -m pip install "SQLAlchemy==2.1.3"
  2. 2

    SQLite in-memoryへ接続するscriptを作る

    公式tutorialと同じSQLite in-memory Engineを使い、外部databaseなしで接続とSQL実行を確認します。

    cat > demo_sqlalchemy.py <<'PY' from sqlalchemy import create_engine, text engine = create_engine('sqlite+pysqlite:///:memory:') with engine.connect() as conn: value = conn.execute(text("select 'hello world'")).scalar_one() print(value) PY
  3. 3

    SQLを実行して結果を確認する

    hello worldが表示されれば、Engine・Connection・text()による最小のCore処理を確認できます。

    python demo_sqlalchemy.py
公式READMEで確認

成長

成長の推移 · 直近30日

12,201 Stars

推移データを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • python
  • sql
  • sqlalchemy
Stars
12,201
Forks
1,805
Watchers
112
Open Issues
214
Contributors
404
所有者種別
Organization
主要言語
Python
ライセンス
MIT
リポジトリ最終更新
2026/10/06

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?