MigrationPilot vs LiquibasePostgreSQL-Specialized Safety Analysis
Liquibase is a multi-database migration runner with some policy checks in its paid tier. MigrationPilot is a free, PostgreSQL-specialized linter with 80 safety rules that catches the lock and DDL issues Liquibase does not analyze.
Different Tools, Different Strengths
Liquibase is a database change management tool. It tracks, manages, and applies schema changes across multiple database engines using XML, YAML, JSON, or SQL changelogs.
- --Supports 50+ database engines
- --Tracks changesets with DATABASECHANGELOG
- --Policy checks available (Pro/Enterprise only)
- --Policy checks are general-purpose, not PostgreSQL-specific
- --No PostgreSQL lock analysis
MigrationPilot is a PostgreSQL migration linter. It analyzes SQL files for lock safety, risky DDL patterns, and best practices using the real PostgreSQL parser.
- 80 PostgreSQL-specific safety rules
- Lock type analysis (SHARE through ACCESS EXCLUSIVE)
- 77 rules free (MIT licensed)
- Auto-detects Liquibase changelog directories
- Real PostgreSQL parser (libpg-query), not regex
Feature Comparison
| Capability | Liquibase OSS | Liquibase Pro | MigrationPilot |
|---|---|---|---|
| Primary purpose | Run migrations | Run migrations | Lint migrations |
| PostgreSQL safety rules | None | General policy checks | 80 specialized rules |
| Lock type analysis | No | No | Per-statement |
| Risk scoring | No | No | RED / YELLOW / GREEN (0-100) |
| Auto-fix | No | No | 12 rules |
| Safe alternative SQL | No | No | Per violation |
| Migration execution | Yes | Yes | No (read-only) |
| Multi-database | 50+ | 50+ | PostgreSQL only |
| GitHub Action | Community | Bundled | Official (free) |
| PR comments | No | No | Yes + inline annotations |
| VS Code extension | No | No | Yes |
| SARIF output | No | No | Yes |
| Config presets | No | Custom policies | 5 built-in presets |
| Rollback DDL generation | Yes | Yes | Yes |
| Framework detection | Liquibase only | Liquibase only | 14 frameworks |
| Price | Free | Custom (enterprise) | Free (77 rules) / $19/mo Pro |
| License | Apache 2.0 | Commercial | MIT |
Why Add MigrationPilot to Your Liquibase Workflow
PostgreSQL Lock Expertise
Liquibase policy checks are database-agnostic. MigrationPilot understands PostgreSQL lock levels (SHARE, SHARE UPDATE EXCLUSIVE, ACCESS EXCLUSIVE) and knows exactly when a DDL statement will block your application.
Free Safety Linting
Liquibase policy checks require a Pro or Enterprise license. MigrationPilot offers 77 rules for free under MIT license. No sales calls, no license keys for basic linting.
Real PostgreSQL Parser
MigrationPilot uses libpg-query (the real PostgreSQL parser compiled to WASM). It parses SQL exactly like PostgreSQL does. No regex heuristics, no false positives from syntax edge cases.
Automatic Remediation
MigrationPilot auto-fixes 12 common issues: adds CONCURRENTLY to CREATE INDEX, inserts lock_timeout, adds NOT VALID to constraints, and more. Liquibase tells you something is wrong; MigrationPilot fixes it.
PR-Level Feedback
The GitHub Action posts safety reports as PR comments with inline annotations on changed files. Reviewers see risk scores, lock types, and safe alternatives without leaving the PR.
Works Alongside Liquibase
MigrationPilot auto-detects Liquibase migration directories. Keep Liquibase for execution and versioning. Add MigrationPilot as a CI lint step to catch dangerous SQL before Liquibase runs it.
When to Use Each Tool
Use Liquibase when you need to...
- Manage migrations across multiple database engines
- Use XML/YAML/JSON changelogs instead of raw SQL
- Track changelogs with DATABASECHANGELOG
- Apply schema changes and rollbacks in your Java/JVM stack
- Enforce enterprise database governance policies (Pro)
Use MigrationPilot when you need to...
- Deep PostgreSQL-specific safety analysis
- Know which locks each DDL statement acquires
- Automatically fix dangerous DDL patterns
- Get PR-level safety reports with risk scores
- Free, open-source migration linting without enterprise pricing
Best approach: Use both together
MigrationPilot does not replace Liquibase. Keep Liquibase for changelog management and migration execution. Add MigrationPilot as a CI lint step that runs before Liquibase applies changes. If your changelogs include raw SQL blocks, MigrationPilot analyzes them for safety. Think of it as ESLint for your migration SQL.
Add MigrationPilot to Your Liquibase Project
Lint SQL changelogs locally
# Analyze SQL migration files in your Liquibase changelog directory npx migrationpilot analyze src/main/resources/db/changelog/*.sql # MigrationPilot auto-detects Liquibase directories npx migrationpilot detect
Add to your CI pipeline
# .github/workflows/migration-lint.yml
name: Lint Migrations
on: pull_request
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: mickelsamuel/migrationpilot@v1
with:
path: src/main/resources/db/changelog/
fail-on: criticalConfigure rules for your team
# .migrationpilotrc.yml extends: recommended pgVersion: 16 exclude: - MP008 # Allow multi-DDL if Liquibase wraps in transactions
Liquibase manages changes. MigrationPilot makes them safe.
80 PostgreSQL safety rules. 12 auto-fixes. Lock analysis. Risk scoring. Free and open-source. Add it to your Liquibase pipeline in 30 seconds.