Drizzle ORM migrations confuse a lot of developers.
Not because the tool is complicated but because push and migrate look similar and do very different things.
drizzle-kit push → syncs your DB directly. No files. No history. Great for local dev, dangerous in production.
drizzle-kit generate + migrate → creates SQL files you can review, commit, and track. This is what production needs.
We wrote a full guide covering:
- push vs migrate (and when to use each)
- drizzle-kit config for PostgreSQL and Turso/libSQL
- the
.env.localgotcha that breaks most setups - handling migration conflicts in a team
- reverting migrations without breaking history
This is the exact workflow we use for devEncyclopedia's own Turso database.
Top comments (0)