Flask Academy · レッスン

生成されたスクリプトを確認して編集する

適用前に自動生成されたマイグレーションを修正します

レッスン 4/413 ステップ

「生成されたスクリプトを確認して編集する」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。

自動生成は完璧ではない

自動生成は優れた下書きですが、最終回答ではありません。どこに適用する場合でも、必ずスクリプトをレビューしてから実行してください。🔍

Versionsファイルを開く

各スクリプトはversionsフォルダーにあります。開いて、ほかのコードと同じようにupgrade関数とdowngrade関数を読みましょう。

opオブジェクト

関数の中にはopオブジェクトの呼び出しがあります。たとえばop.create_tableやop.add_columnは、それぞれ1つのスキーマ変更を表します。

op.add_column("user", sa.Column("age", sa.Integer()))

Alembicが見落とすもの

自動生成では名前変更を見落とすことが多く、削除と追加として扱われます。その場合、カラムのデータが気付かないうちに削除されてしまいます。

名前変更を手動で修正する

カラムの名前を本当に変更する場合は、削除と追加を、データを保持する1つのalter_columnに置き換えます。

op.alter_column("user", "name", new_column_name="full_name")

downgradeを確認する

downgradeがupgradeを本当に元に戻すことを確認してください。downgradeに問題があると、ロールバックが必要になったときに行き詰まります。

NOT NULLカラムに注意する

行が存在するテーブルにNULLを許容しないカラムを追加すると失敗します。まずNULLを許容する形で追加し、値を設定してから必須に変更してください。

データの手順は自分で追加する

値をバックフィルする必要がありますか?スキーマ変更の手順の間に、生SQLを使うop.execute呼び出しを追加して、既存データを安全に移行します。

op.execute("UPDATE user SET age = 0")

まずコピーでテストする

本番環境に触れる前に、実データのコピーでマイグレーションを実行してください。修正コストが低いうちに失敗を見つけられます。

1つのマイグレーションに1つの変更

各マイグレーションは、1つの論理的な変更に集中させてください。小さなスクリプトのほうが、レビューやテスト、きれいなロールバックを簡単に行えます。

完成したスクリプトをコミットする

編集とテストが終わったら、スクリプトをコミットしてください。本番環境の履歴に反映済みのマイグレーションは、決して変更してはいけません。

クイックチェック

カラムの名前を変更したところ、自動生成で削除と追加が書き出されました。どのような危険がありますか?

まとめ

生成されたスクリプトをレビューし、alter_columnで名前変更を修正し、NULLを許容しないカラムを扱い、リリース前にテストする方法を学びました。🎉

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「生成されたスクリプトを確認して編集する」レッスンは無料ですか?

はい。「生成されたスクリプトを確認して編集する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。

「生成されたスクリプトを確認して編集する」で何を学びますか?

適用前に自動生成されたマイグレーションを修正します ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Flask Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「生成されたスクリプトを確認して編集する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このFlask Academyレッスンでコードを書いて実行できますか?

はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. create_allではなくマイグレーションが必要な理由
  2. マイグレーションを初期化して自動生成する
  3. upgradeで適用とロールバックを行う
  4. 生成されたスクリプトを確認して編集する
← Flask Academyに戻る