upgradeで適用とロールバックを行う
スキーマを前後のバージョンへ移行します
「upgradeで適用とロールバックを行う」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。
スクリプトからスキーマへ
マイグレーションファイルはありますが、データベースはまだ変更されていません。1つのコマンドで、そのスクリプトを実際のテーブルに反映できます。🚀
upgradeを実行する
flask db upgradeは保留中のマイグレーションをすべて実行し、データベースを順番に最新バージョンまで更新します。
flask db upgradeupgrade()を呼び出す
内部では、Alembicが保留中の各スクリプト内にあるupgrade関数を実行し、createやalterの操作を適用します。
def upgrade():
op.create_table("user", ...)バージョンが記録される
正常に実行されると、新しいリビジョンIDがalembic_versionテーブルに保存され、Alembicが現在の位置を記憶できるようになります。
保留中のものだけが実行される
upgradeは賢く動作します。すでに適用されたマイグレーションはスキップし、保留中のものだけを実行するため、再実行しても安全です。
間違えてしまったら?
マイグレーションに問題があっても、データベースを手作業で編集してはいけません。代わりに、問題のない既知のバージョンまでロールバックします。
downgradeでロールバックする
flask db downgradeはdowngrade関数を実行して直前のマイグレーションを取り消し、最後に行った変更を元に戻します。
flask db downgrade特定のリビジョンを指定する
どちらのコマンドも対象を指定できます。revision IDを渡すと、マイグレーション履歴内のその地点へ直接移動できます。
flask db upgrade a1b2c3d4現在位置を確認する
いつでもflask db currentを実行すれば、現在データベースが適用されているリビジョンを表示できます。簡単な動作確認に便利です。
flask db current履歴を読む
flask db historyはすべてのマイグレーションを順番に一覧表示するため、最初のリビジョンから最新のものまでの全経路を確認できます。
flask db history本番環境で適用する
デプロイ時にはリリース手順としてupgradeを実行し、migrateは実行しません。本番環境では、チームがすでにレビューしたスクリプトを単に再実行します。
クイックチェック
最後のマイグレーションで問題が発生しました。その変更だけを取り消すにはどうしますか?
まとめ
flask db upgradeで変更を適用し、downgradeで元に戻し、currentとhistoryで状態を確認する方法を学びました。🎉
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「upgradeで適用とロールバックを行う」レッスンは無料ですか?
はい。「upgradeで適用とロールバックを行う」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。
「upgradeで適用とロールバックを行う」で何を学びますか?
スキーマを前後のバージョンへ移行します ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Flask Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「upgradeで適用とロールバックを行う」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このFlask Academyレッスンでコードを書いて実行できますか?
はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- create_allではなくマイグレーションが必要な理由
- マイグレーションを初期化して自動生成する
- upgradeで適用とロールバックを行う
- 生成されたスクリプトを確認して編集する