Flask Academy · レッスン

マイグレーションを初期化して自動生成する

flask db initとmigrateを実行します

レッスン 2/413 ステップ

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

Flask-Migrateをインストールする

まずパッケージをプロジェクトに追加します。Flask-Migrateによって、Alembicと便利なflask dbコマンド一式が利用できるようになります。📦

pip install Flask-Migrate

アプリに接続する

Migrateオブジェクトを作成し、アプリとデータベースにバインドします。この1行で、flask dbコマンドグループ全体が有効になります。

from flask_migrate import Migrate
migrate = Migrate(app, db)

リポジトリを初期化する

プロジェクトごとに1回、flask db initを実行します。生成するすべてのバージョンスクリプトを格納するmigrationsフォルダーが作成されます。

flask db init

フォルダーの中身

新しいフォルダーには、alembic.ini、env.py、および今後のマイグレーションファイルを格納する空のversionsディレクトリが含まれます。

マイグレーションを自動生成する

flask db migrateはモデルと現在のスキーマを比較し、変更内容を正確に記述したスクリプトを書き出します。

flask db migrate -m "create users table"

-mメッセージ

必ずわかりやすい-mメッセージを指定してください。後でチームが履歴を変更履歴のように読めるよう、マイグレーションに名前を付けます。

新しいversionsファイル

migrateコマンドを実行するたびに、versionsに新しいファイルが作成されます。ファイル名にはランダムなリビジョンIDと、指定したメッセージのスラッグが使われます。

モデルはインポートする必要がある

自動生成で認識されるのは、コマンド実行時に実際にインポートされているモデルだけです。インポートが不足すると、スクリプト内のテーブルも不足します。

差分を検出する

Alembicはモデルのメタデータとデータベースを比較します。新しいテーブルや追加されたカラム、多くの変更された制約を自動的に検出できます。

migrateは適用しない

重要な点として、migrateが書き出すのはスクリプトだけです。次のレッスンで実際に適用するまで、データベースは変更されません。

マイグレーションをコミットする

マイグレーションファイルはコードとして扱い、gitにコミットしてください。チームメンバーはバージョン履歴からまったく同じ変更を再現できます。

クイックチェック

flask db migrateを実行して新しいファイルが作成されました。テーブルは変更されましたか?

まとめ

Migrateを接続し、flask db initを実行し、flask db migrateで適用準備の整ったスクリプトを自動生成しました。🎉

無料で開始

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

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

コース
30
レッスン
120

よくある質問

「マイグレーションを初期化して自動生成する」レッスンは無料ですか?

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

「マイグレーションを初期化して自動生成する」で何を学びますか?

flask db initとmigrateを実行します ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「マイグレーションを初期化して自動生成する」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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