Change8

Migrating to Drizzle ORM v1.0.0-beta.5

Version v1.0.0-beta.5 introduces 3 breaking changes. This guide details how to update your code.

Released: 12/23/2025

3
Breaking Changes
4
Migration Steps
7
Affected Symbols

⚠️ Check Your Code

If you use any of these symbols, you need to read this guide:

sqliteTableuniqueIndexforeignKeyblobjsonbdrizzle-kit updrizzle-kit push

Breaking Changes

Issue #1

SQLite UNIQUE constraints are now handled as uniqueIndex. This requires a specific naming convention: <table>_<column1>*_*<column2>_..._unique.

Issue #2

SQLite Foreign Key names defined in TS schema were previously ignored in SQL generation; new versions will now detect a diff if names exist in schema but not in DB, leading to table recreations.

Issue #3

SQLite columns added with references (onDelete/onUpdate) in previous versions may have been created without those parameters; the new version will trigger a table recreation to fix this state.

Migration Steps

  1. 1
    Run `drizzle-kit up` to upgrade snapshots to the new format.
  2. 2
    If using SQLite and you already used a `beta.x` version of `drizzle-kit up`, you may need to reset migrations or contact support.
  3. 3
    To avoid table recreations during `push` due to foreign key name mismatches in SQLite, remove explicit foreign key names from the TypeScript schema if they don't exist in the database.
  4. 4
    Ensure SQLite unique indexes follow the naming pattern: <table>_<column1>*_*<column2>_..._unique.

Release Summary

This release fixes several critical bugs across PostgreSQL, MSSQL, and MySQL, while introducing significant changes to how SQLite unique constraints and foreign keys are handled in drizzle-kit.

Need More Details?

View the full release notes and all changes for Drizzle ORM v1.0.0-beta.5.

View Full Changelog