第13章. Alembicをコントロールする
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
前の章では、マイグレーションを作成して適用する方法を学んだが、この章ではさらにAlembicを制御する方法について説明する。データベースの現在のマイグレーションレベルを知る方法、マイグレーションからダウングレードする方法、特定のマイグレーションレベルでデータベースをマークする方法を探る。
データベースの移行レベルを決定する
マイグレーションを実行する前に、どのマイグレーションがデータベースに適用されたかを再確認すべきである。データベースに適用された最後のマイグレーションが何であるかは、alembic current コマンドを使うことで確認できる。 このコマンドは現在のマイグレーションのリビジョンIDを返し、それが最新のマイグレーション(ヘッドとも呼ばれる)であるかどうかを教えてくれる。本書のサンプルコードのCH12/フォルダにあるalembic current コマンドを実行してみよう:
# alembic currentINFO[alembic.runtime.migration]ContextimplSQLiteImpl.INFO[alembic.runtime.migration]Willassumenon-transactionalDDL.2e6a6cc63e9(head)
この出力は、私たちがマイグレーション2e6a6cc63e9 に参加していることを示しているが、同時に、私たちが先頭または最新のマイグレーションに参加していることも示している。これはテーブルを に変更したマイグレーションである。 cookiesテーブルをnew_cookies に変更したマイグレーションである。 alembic history コマンドで確認できる。例13-1はAlembicの履歴がどのように見えるかを示す。
例13-1. 移住の歴史
# alembic history34044511331-> 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