ページ内ナビ
概要
AlembicはSQLAlchemyを基盤に、リレーショナルDBのスキーマ変更をPythonスクリプトとして作成・順序管理・適用するマイグレーションツールです。upgrade/downgrade、autogenerate、transactional DDL、複数branchのmerge、SQLite向けbatch migrationまで扱えます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
migration environmentとrevision scriptでschema変更を履歴化する
alembic initでproject固有のmigration environmentを作り、各revisionにupgrade()とdowngrade()を記述します。接続方法やscript templateをproject側で変更できるため、database topologyや運用規約に合わせて構成できます。
向いている用途
導入前の確認
参考にした公式資料
- [1]sqlalchemy/alembic — GitHub repository(2026-10-06)
- [2]Alembic 1.20.0 — README(2026-10-06)
- [3]Alembic 1.20.0 — pyproject.toml(2026-10-06)
- [4]Alembic 1.20.0 tutorial(2026-10-06)
- [5]Alembic 1.20.0 autogenerate documentation(2026-10-06)
- [6]Alembic 1.20.0 release(2026-10-06)
- [7]Alembic MIT license(2026-10-06)
編集部からの補足
autogenerateはmigration作成の初期作業を減らせますが、そのまま本番適用する機能ではありません。constraint名、data migration、downgradeの可逆性をcode reviewの対象として運用することが重要です。
3ステップで試す
- 1
Alembic 1.20.0とSQLAlchemyを導入する
Alembicを対象projectと同じPython環境へversion固定で導入します。
python -m pip install "alembic==1.20.0" "SQLAlchemy==2.1.3" - 2
migration environmentを作成する
公式tutorialの開始手順に沿ってalembic.ini、env.py、versions directory等を生成します。
alembic init alembic - 3
最初のrevisionを作って履歴を確認する
databaseへ変更を適用せず、version管理されるmigration scriptが生成されることを確認します。実DBへ適用する前に接続設定とupgrade内容を編集してください。
alembic revision -m "baseline" && alembic history
成長
成長の推移 · 直近30日
4,431 Stars
推移データを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Kotlin JDSL825 Stars
共通タグ 3件 · 共通カテゴリ 2件
generated metamodelなしでKotlin classからJPA queryを組み立てる
Kotlin - Komapper344 Stars
共通タグ 3件 · 共通カテゴリ 2件
JDBCとR2DBCをKotlin DSLとcompile-time metamodelで統一する
Kotlin - sqlmap38,611 Stars
共通タグ 3件 · 同じ言語
許可されたWebアプリのSQLインジェクション検証を自動化する
Python - redis-py13,648 Stars
共通タグ 2件 · 共通カテゴリ 2件 · 同じ言語
同期・非同期・Cluster対応を一つのAPIで扱うPython向けRedisクライアント
Python - DBeaver51,964 Stars
共通タグ 2件 · 共通カテゴリ 2件
多数のdatabaseを一つのdesktop SQL workspaceから操作する
Java - Turso Database24,632 Stars
共通タグ 2件 · 共通カテゴリ 2件
SQLite互換のSQLをRust製エンジンで実行し、複数言語から組み込めるデータベース
Rust
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。