Every time I started a new Node.js + PostgreSQL project, I ran into the same friction.
I'd reach for a migration tool and suddenly I was also choosing an ORM, reading
docs about dialect configs, and wiring up a connection object that duplicated what
I already had in my DATABASE_URL. I didn't want a framework. I just wanted to
run SQL files in order and know which ones already ran.
That's it.
So I built Runway — a PostgreSQL migration CLI for Node.js projects that
doesn't try to be anything else.
What it does
- Runs
.sqlmigration files in order - Tracks applied migrations in a
runway_migrationstable (nothing else touches your schema) - Reads your existing
DATABASE_URL— no extra config object needed - Works with encoded passwords out of the box
- Has a
baselinecommand for existing databases you're adopting mid-life
npx @vlynk-studios/runway migrate
What it doesn't do
No ORM. No query builder. No schema introspection. If you already write raw SQL
and just want something to apply it reliably, Runway is exactly the right amount
of tool.
Current state
-
v0.3.5on npm as@vlynk-studios/runway - 13 test suites, 77 passing tests
- Integration tests use Testcontainers (real Postgres, no mocking)
- ESLint clean, 6 production dependencies
Try it
npm install --save-dev @vlynk-studios/runway
Source and docs: github.com/vlynk-studios/runway
First post on dev.to — feedback welcome, especially if you've solved this
differently. Curious what tradeoffs looked like for you.
Top comments (0)