生成されたスクリプトを確認して編集する
適用前に自動生成されたマイグレーションを修正します
「生成されたスクリプトを確認して編集する」は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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- create_allではなくマイグレーションが必要な理由
- マイグレーションを初期化して自動生成する
- upgradeで適用とロールバックを行う
- 生成されたスクリプトを確認して編集する