releases.shpreview

D1 - D1 migrations support nested layouts via `migrations_pattern`

You can now point wrangler d1 migrations apply at a nested migrations layout — such as the one produced by Drizzle (migrations/0001_init/migration.sql) — using the new migrations_pattern D1 binding config:

<div><div><span>{</span></div></div><div><div><span>  </span><span>"</span><span>d1_databases</span><span>"</span><span>:</span><span> </span><span>[</span></div></div><div><div><span>    </span><span>{</span></div></div><div><div><span>      </span><span>"</span><span>binding</span><span>"</span><span>:</span><span> </span><span>"DB"</span><span>,</span></div></div><div><div><span>      </span><span>"</span><span>database_name</span><span>"</span><span>:</span><span> </span><span>"my-database"</span><span>,</span></div></div><div><div><span>      </span><span>"</span><span>database_id</span><span>"</span><span>:</span><span> </span><span>"<UUID>"</span><span>,</span></div></div><div><div><span>      </span><span>"</span><span>migrations_dir</span><span>"</span><span>:</span><span> </span><span>"migrations"</span><span>,</span></div></div><div><div><span>      </span><span>"</span><span>migrations_pattern</span><span>"</span><span>:</span><span> </span><span>"migrations/*/migration.sql"</span><span>,</span></div></div><div><div><span>    </span><span>},</span></div></div><div><div><span>  </span><span>],</span></div></div><div><div><span>}</span></div></div>

migrations_pattern is a glob (relative to your Wrangler config file) used to discover migration files. It defaults to ${migrations_dir}/*.sql, so existing projects keep working unchanged. Each migration's name is recorded in the migrations table as a path relative to migrations_dir.

To learn more, visit D1's migrations documentation.

Fetched June 19, 2026