Registry / database / drizzle-migrations-liquibase

drizzle-migrations-liquibase

JSON →
library1.2.1jsnpmunverified

Bridges Drizzle ORM with Liquibase to eliminate migration conflicts in team environments. v1.2.1 (2025). Active development with monthly releases. Supports PostgreSQL, MySQL, SQLite, and SingleStore via two diff engines: a custom structural engine (default, PostgreSQL-only) and a drizzle-kit engine (hooks into drizzle-kit's own diff algorithms for all dialects). Key differentiators: rollback-safe migrations, no journal file conflicts, Liquibase checksum verification, team-friendly workflow, bidirectional diffing, and AST-based schema parsing. Requires Node >=18.

npm install drizzle-migrations-liquibase
INSTALL
IMPORT
SIG · DRIZZLE-MIGRATIONS
D
drizzle-migrations-liquibase
databasejavascriptv1.2.1
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

diffSchemas
✓ import { diffSchemas } from 'drizzle-migrations-liquibase'
✗ const { diffSchemas } = require('drizzle-migrations-liquibase')
ESM-only since v1.0.0. CJS require will throw. TypeScript supports type definitions out of the box.
generateMigration
✓ import { generateMigration } from 'drizzle-migrations-liquibase'
✗ import generateMigration from 'drizzle-migrations-liquibase'
Named export, not default export. Use { generateMigration }.
MigrationOptions
✓ import { MigrationOptions } from 'drizzle-migrations-liquibase'
✗ import type { MigrationOptions } from 'drizzle-migrations-liquibase'
Both type and value exports available. For type-only usage, use 'import type'. The type is also exported as a value for runtime checks.
reverseEngineerSchema
✓ import { reverseEngineerSchema } from 'drizzle-migrations-liquibase'
✗ import { ReverseEngineerSchema } from 'drizzle-migrations-liquibase'
Function name is camelCase, not PascalCase.
loadSchemaFiles
✓ import { loadSchemaFiles } from 'drizzle-migrations-liquibase'
Use for programmatic schema loading. Avoids direct fs usage.

Shows programmatic use of diffSchemas and generateMigration to create a Liquibase migration from Drizzle schema files.

import { diffSchemas, generateMigration } from 'drizzle-migrations-liquibase'; import { drizzle } from 'drizzle-orm/node-postgres'; // Ensure drizzle-kit, drizzle-orm, liquibase, and pg are installed const db = drizzle(process.env.DATABASE_URL ?? ''); const schemaDir = './src/db/schema'; const migrationsDir = './migrations'; const outputDir = './migrations/liquibase'; const migrationName = 'add_users_table'; try { const diff = await diffSchemas({ schemaDir, outputDir, db }); await generateMigration({ diff, migrationName, outputDir }); console.log('Migration generated'); } catch (error) { console.error('Failed:', error); }
Debug
Known issues
breakingv1.2.0 changed the default engine from custom to drizzle-kit for multi-database support. Existing projects must opt-in to the custom engine via config.
fix
Add engine: 'custom' to the constructor options or config file to retain the old behavior.
affects: >=1.2.0
deprecatedPostgreSQL-only custom engine will be removed in v2.0. Migrate to drizzle-kit engine for future compatibility.
fix
Switch to drizzle-kit engine by removing engine: 'custom' from config, or plan migration to drizzle-kit engine before v2.0.
affects: >=1.2.0
gotchaThe drizzle-kit engine requires drizzle-kit >=0.31.0 || >=1.0.0-beta.1. Using an older version will throw an import error.
fix
Update drizzle-kit to >=0.31.0 or >=1.0.0-beta.1 (if using beta).
affects: >=1.2.0
gotchaLiquibase node mode requires the liquibase npm package as a peer dependency. If using Docker or CLI mode, the package is optional but installation is still expected.
fix
Install the liquibase npm package: 'npm install liquibase' or configure to use a different mode.
affects: >=1.0.0
gotchaSchema files must use .ts extension and export tables/relations using Drizzle's export pattern. Files with .js or .mjs extensions will be ignored.
fix
Rename schema files to .ts and ensure each file exports tables using 'export const tableName = ...'.
affects: >=1.0.0
breakingReverse mode (database-first) is read-only by default. Writing to schema files requires explicit flag in all versions.
fix
Pass { writeToSchema: true } to reverseEngineerSchema or enable via CLI flag.
affects: >=1.0.0
Errors
Common errors & fixes
Error: Cannot find module 'drizzle-migrations-liquibase'
Package not installed or not in node_modules. Ensure npm/yarn/pnpm install was run.
fix
Run 'npm install drizzle-migrations-liquibase' and peer dependencies.
TypeError: diffSchemas is not a function
Default import used instead of named import.
fix
Use 'import { diffSchemas } from 'drizzle-migrations-liquibase' instead of 'import diffSchemas from ...'.
Error: The drizzle-kit engine requires drizzle-kit version >=0.31.0. Found version x.y.z.
Outdated drizzle-kit version incompatible with the drizzle-kit engine.
fix
Update drizzle-kit to >=0.31.0 (or >=1.0.0-beta.1 for beta) using 'npm install drizzle-kit@latest'.
Error: Unsupported database dialect. The custom engine only supports PostgreSQL.
Using non-PostgreSQL database with the default custom engine.
fix
Switch to the drizzle-kit engine by adding engine: 'drizzle-kit' to config, or use a PostgreSQL database.
Upgrade
Version history
1.2.1latest on npm
Audit
Dependencies
drizzle-kitrequiredPeer dependency for the drizzle-kit engine (opt-in) and for schema parsing via drizzle-kit internals
drizzle-ormrequiredPeer dependency for schema definition and type inference
liquibaserequiredCore peer dependency for running Liquibase commands (node mode)
better-sqlite3optionalOptional peer dependency for SQLite support
mysql2optionalOptional peer dependency for MySQL/SingleStore support
pgoptionalOptional peer dependency for PostgreSQL support
Agent activity
15 hits · last 30 days
node
12
Google (search)
1
Resources
drizzle-migrations-liquibase — npm install drizzle-migrations-liquibase · libregistry