MigrationPilot vs AtlasFree, Open-Source Migration Linting
Atlas (by Ariga) is a schema management tool with 7 PostgreSQL lint rules in its paid tier. MigrationPilot is a dedicated migration linter with 80 rules — 77 of them free. It works alongside Atlas or any other migration tool.
Rule-by-Rule Coverage
Every Atlas PostgreSQL lint rule (PG301-PG307) has a direct MigrationPilot equivalent — with 3 of them auto-fixable.
| Atlas Rule | MigrationPilot Equivalent | Auto-Fix |
|---|---|---|
| PG301 Non-concurrent index creation | MP001 require-concurrent-index | Yes |
| PG302 NOT NULL column without default | MP002 require-check-not-null | — |
| PG303 Column with volatile default | MP003 volatile-default-rewrite | — |
| PG304 FK without NOT VALID | MP005 require-not-valid-fk | — |
| PG305 CHECK without NOT VALID | MP030 require-not-valid-check | Yes |
| PG306 Non-concurrent index drop | MP009 require-drop-index-concurrently | Yes |
| PG307 Column type change | MP007 no-column-type-change | — |
Feature Comparison
| Capability | Atlas (Free) | Atlas (Pro/Cloud) | MigrationPilot |
|---|---|---|---|
| Migration linting | Removed in v0.38 | 7 PG rules | 80 rules (77 free) |
| 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 |
| Declarative schema | Yes (HCL) | Yes (HCL) | No (lint-only) |
| Schema versioning | Yes | Yes | No (works with any) |
| GitHub Action | Limited | Yes | Free (PR comments + annotations) |
| VS Code extension | HCL support | HCL support | SQL safety diagnostics |
| SARIF output | No | No | Yes (Code Scanning) |
| Schema drift detection | Yes | Yes | Yes |
| Multi-database | PG, MySQL, SQLite, etc. | PG, MySQL, SQLite, etc. | PostgreSQL only |
| Config presets | atlas.hcl | atlas.hcl | 5 built-in YAML presets |
| Framework detection | Atlas only | Atlas only | 14 frameworks |
| Production context | No | Cloud-based | Direct DB queries (Pro) |
| Air-gapped mode | No | No (requires cloud) | Yes (--offline) |
| Price | Free | Custom | Free (77 rules) / $19/mo Pro |
| License | Apache 2.0 | Commercial | MIT |
73 Rules Atlas Does Not Have
MigrationPilot catches issues that Atlas's 7 rules miss. Here are some highlights:
Require SET lock_timeout before any DDL
Multiple DDL in one transaction compounds lock duration
CONCURRENTLY inside a transaction causes a runtime error
UNIQUE constraint without USING INDEX scans full table under ACCESS EXCLUSIVE
DETACH PARTITION without CONCURRENTLY locks the parent table
Dropping PK breaks logical replication (Supabase, Neon, RDS)
Missing GIN index for JSONB column queries
ENABLE RLS without policy silently blocks all access
DISABLE TRIGGER breaks replication and audit logs
FK creation locks both parent and child tables
FK without DEFERRABLE can cause lock contention during bulk operations
Data changes mixed into schema migration files
Plus 61 more rules covering data safety, type best practices, partitioning, pgvector, and more. See all 80 rules.
Key Differentiators
Free Migration Linting
Atlas moved migration linting behind a paid plan in v0.38. MigrationPilot gives you 77 rules for free under an MIT license. No cloud account required.
10x More Rules
Atlas has 7 PostgreSQL lint rules. MigrationPilot has 80 covering lock safety, data types, partitioning, RLS, JSONB indexing, logical replication, and more.
Lock-Level Analysis
MigrationPilot tells you exactly which PostgreSQL lock each DDL statement acquires (SHARE, SHARE UPDATE EXCLUSIVE, ACCESS EXCLUSIVE) and whether it blocks reads or writes.
Auto-Fix
12 rules can be automatically fixed with --fix. Missing CONCURRENTLY, lock_timeout, statement_timeout, NOT VALID, IF NOT EXISTS, and more. Atlas does not offer auto-fix.
Works Without Cloud
Atlas Pro requires an Ariga Cloud account. MigrationPilot runs entirely locally or in your own CI. The --offline flag ensures zero external calls.
Framework Agnostic
MigrationPilot works with any migration tool: Atlas, Flyway, Liquibase, Prisma, Django, Rails, Alembic, and 7 more. Auto-detect with npx migrationpilot detect.
When to Use Each Tool
Use Atlas when you need to...
- Define schemas declaratively with HCL
- Auto-generate migration files from schema diffs
- Manage schemas across multiple database engines
- Use cloud-hosted schema management (Ariga Cloud)
- Apply versioned migrations with built-in execution
Use MigrationPilot when you need to...
- Comprehensive PostgreSQL migration safety analysis
- Free linting without a cloud account or paid plan
- Auto-fix dangerous DDL patterns automatically
- Run entirely locally or air-gapped (no cloud dependency)
- Lint migrations from any framework, not just Atlas
Use both together
If you use Atlas for schema management, you can add MigrationPilot as a lint step in your CI pipeline. Atlas generates the migration SQL, MigrationPilot reviews it for safety. Keep Atlas for declarative schema management and execution. Add MigrationPilot for deep PostgreSQL safety analysis.
Get Started in 30 Seconds
Lint your Atlas migrations
# Analyze migration files generated by Atlas npx migrationpilot analyze migrations/*.sql
Add to GitHub Actions
- uses: mickelsamuel/migrationpilot@v1
with:
path: migrations/
fail-on: criticalAuto-fix common issues
npx migrationpilot analyze migrations/ --fix --dry-run
80 rules. Free and open-source. No cloud required.
Migration linting should not require a paid plan. MigrationPilot gives you 77 safety rules for free, 12 auto-fixes, lock analysis, and risk scoring. MIT licensed.