Postgres Migration Lock Lint

Names every statement in a Rails, Django or raw SQL migration that takes a table-blocking Postgres lock, and prints the non-blocking rewrite. 36 rules, PostgreSQL 12-17.
Install
npx @readystack/pg-migration-lock-lint file
Node 18+. The same 36 rules as the VS Code extension, from a terminal or CI.
Free
- Check the migration file you have open against all 36 rules and get the lock mode, the failure and the safe rewrite for every statement.
--rules lists every rule
With a licence ($29 once)
- Check every migration in the workspace in one pass, export the review as Markdown or JSON for the change ticket, and fail CI on an exit code.
@readystack/pg-migration-lock-lint --dir ./templates --report html --out report.html
Independent Postgres consultancies bill migration and lock review at $150/hour and up; this is one review, priced once.
Use from an AI agent (MCP)
Claude Code · Cursor · Windsurf · any MCP client - add to your MCP config:
{ "mcpServers": { "pg-migration-lock-lint": { "command": "npx", "args": ["-y", "@readystack/pg-migration-lock-lint", "--mcp"] } } }
Tools: check_text and check_file (free) · check_dir (licence; the full sweep is free for 7 days). The agent gets every finding with the line number.
Use in CI
- name: Postgres Migration Lock Lint
run: npx -y @readystack/pg-migration-lock-lint --dir . --ci
(container: docker run --rm -v "$PWD:/work" getreadystack/pg-migration-lock-lint --dir /work --ci)
Try the full run free for 7 days — no key needed. Then one licence, 7-day refund, no questions. Set READYSTACK_LICENSE=<key> or run --license <key> once.
Get a licence