Skip to Content
Essential SQLAlchemy, 2nd Edition
book

Essential SQLAlchemy, 2nd Edition

by Jason Myers, Rick Copeland
May 2025
Intermediate to advanced
208 pages
2h 55m
Japanese
O'Reilly Media, Inc.
Content preview from Essential SQLAlchemy, 2nd Edition

第13章. Alembicをコントロールする

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

前の章では、マイグレーションを作成して適用する方法を学んだが、この章ではさらにAlembicを制御する方法について説明する。データベースの現在のマイグレーションレベルを知る方法、マイグレーションからダウングレードする方法、特定のマイグレーションレベルでデータベースをマークする方法を探る。

データベースの移行レベルを決定する

マイグレーションを実行する前に、どのマイグレーションがデータベースに適用されたかを再確認すべきである。データベースに適用された最後のマイグレーションが何であるかは、alembic current コマンドを使うことで確認できる。 このコマンドは現在のマイグレーションのリビジョンIDを返し、それが最新のマイグレーション(ヘッドとも呼ばれる)であるかどうかを教えてくれる。本書のサンプルコードのCH12/フォルダにあるalembic current コマンドを実行してみよう:

# alembic current
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
2e6a6cc63e9 (head) 1
1

データベースに適用された最後のマイグレーション

この出力は、私たちがマイグレーション2e6a6cc63e9 に参加していることを示しているが、同時に、私たちが先頭または最新のマイグレーションに参加していることも示している。これはテーブルを に変更したマイグレーションである。 cookiesテーブルをnew_cookies に変更したマイグレーションである。 alembic history コマンドで確認できる。例13-1はAlembicの履歴がどのように見えるかを示す。

例13-1. 移住の歴史
# alembic history
34044511331 -> 2e6a6cc63e9 (head), Renaming cookies to new_cookies
8a8a9d067 -> 34044511331, Added Cookie model
<base> -> 8a8a9d067, Empty Init

例 13-1の出力は、初期化の空のマイグレーションから、cookies テーブルに名前を付けた現在のマイグレーションまでのすべてのステップを示している。new_cookies はテーブルの名前としてはひどいもので、特にクッキーを再度変更してnew_new_cookies 。これを修正して以前の名前に戻すために、マイグレーションをダウングレードする方法を学ぼう。

マイグレーションをダウングレードする

マイグレーションをダウングレードするには、戻りたいマイグレーションのリビジョンIDを選択する必要がある。例えば、初期の空のマイグレーションに戻りたい場合、リビジョンID ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Essential SQLAlchemy, 2nd Edition

Essential SQLAlchemy, 2nd Edition

Jason Myers, Rick Copeland
High Performance Python, 3rd Edition

High Performance Python, 3rd Edition

Micha Gorelick, Ian Ozsvald

Publisher Resources

ISBN: 9798341649866