コンテンツにスキップ

マイグレーション

データベースマイグレーションは、データベースのバージョン管理の方法です。各マイグレーションは、migrationsフォルダー内に.sqlファイルとして保存されます。migrationsフォルダーは、最初のマイグレーションを作成するときにプロジェクトディレクトリ内に作成されます。これにより、データベース開発中の変更を保存および追跡することができます。

機能

現在、マイグレーションシステムはシンプルでありながら効果的であることを目指しています。現在の実装では、次のことができます:

migrationsフォルダー内の各マイグレーションファイルには、ファイル名に指定されたバージョン番号があります。ファイルは順番にリストされます。各マイグレーションファイルはSQLファイルであり、実行するクエリを指定できます。

Wranglerのカスタマイズ

デフォルトでは、マイグレーションはWorkerプロジェクトディレクトリ内のmigrations/フォルダーに作成されます。マイグレーションを作成すると、データベース内のd1_migrationsテーブルに適用されたマイグレーションの記録が保持されます。

この場所とテーブル名は、D1バインディング内のwrangler.tomlファイルでカスタマイズできます。

[[ d1_databases ]]
binding = "<BINDING_NAME>" # 例えば、これを"DB"に設定すると、Worker内で`env.DB`として利用可能になります
database_name = "<DATABASE_NAME>"
database_id = "<UUID>"
preview_database_id = "<UUID>"
migrations_table = "<d1_migrations>" # この値をカスタマイズして適用されたマイグレーションテーブル名を変更します
migrations_dir = "<FOLDER_NAME>" # この値をカスタマイズして`migrations`フォルダーの名前を変更します

外部キー制約

マイグレーションを適用する際には、一時的に外部キー制約を無効にする必要がある場合があります。そのためには、外部キーを違反する変更を行う前にPRAGMA defer_foreign_keys = trueを呼び出します。

外部キーとD1の操作方法については、外部キーのドキュメントを参照してください。