From Heroku Postgres

Migrate from Heroku Postgres to Swyftstack in three clicks.

Move from Heroku Standard-0 to Swyftstack Launch at $19/mo. Same Postgres, same tooling, modern dashboard.

Side-by-side

Heroku Standard-0 vs Swyftstack Launch

Feature
Heroku Standard-0
Swyftstack Launch
Monthly price$50$19 (14-day free trial)
Daily backups
One-click restoreManualOne click
Modern dashboard
Object storage100 GB
How

Four steps with the Heroku CLI

1Get your Heroku connection string

heroku config -a your-app-name → copy DATABASE_URL.

2Paste into Swyftstack

Dashboard → Migrate → "From Heroku". Paste, click Start.

3Wait for the progress bar

Most Heroku databases (under 5 GB) take 2-5 minutes.

4Update DATABASE_URL

Set DATABASE_URL to the new connection string during your normal release window.

After the move

What you get on Swyftstack

The same Postgres on a flat bill, with the operational pieces Heroku charges extra for already included.

Real Postgres, no fork

PostgreSQL 16 straight from postgresql.org. No custom protocol, no proprietary driver. Whatever your ORM expects, just works.

Object storage included

Use Swyftstack's console, signed URLs, scoped credentials, and public object links. Full S3 gateway compatibility is on the roadmap.

47-second provisioning

Click "Create database". Get a connection string with SSL by default. No waiting room, no provisioning queue, no DNS to set up first.

Daily backups, tested restores

Encrypted daily backups with 7- or 30-day retention. Weekly automated restore drills - because untested backups aren't backups.

One bill, one platform

Database, storage, backups, and egress on a single invoice. No three-vendor accounting at the end of the quarter.

No vendor lock-in

Open standards on both ends. pg_dump and S3 export are first-class, even on the free tier. Move on whenever you want.

Two things to know first

Heroku-specific details that catch people

01

Heroku rotates DATABASE_URL; yours will be stable

Heroku rotates DATABASE_URL during maintenance, which is why hard-coding it breaks and heroku config is the source of truth. Your Swyftstack connection string stays fixed, with credentials you rotate on your own schedule.

02

Connections are the usual ceiling, not data

Hobby tiers allow as few as 20 connections, and a few serverless functions exhaust that fast. Size your pool deliberately and reuse one pool per process. Pooling is configured for you, so you are not running a separate PgBouncer add-on to keep a small app online.

03

The cutover is heroku config:set and a restart

We dump while Heroku keeps serving, restore onto PostgreSQL 16, and verify row counts. Going live is heroku config:set DATABASE_URL plus heroku restart, a few seconds. Roll back by pointing the variable back; your Heroku database stays live until you delete it.

Frequently asked

Does pg_dump-shaped data restore cleanly?

Yes. We use the same pg_dump and pg_restore internally, so anything Heroku could dump, we can restore. Tables, indexes, sequences, foreign keys, and common extensions all come across intact.

What about Heroku Connect or other add-ons?

We only migrate the database itself. Other Heroku add-ons (Redis, Connect, scheduler, third-party services) stay on Heroku or get replaced separately. The database move doesn't touch them, and we're happy to advise on what to do with each one.

What Postgres version does Heroku run, and will it match?

Heroku Postgres ships a stock build a major version or two behind the latest. We restore onto PostgreSQL 16. pg_restore handles the upgrade in-flight for the vast majority of schemas; the only things to check are deprecated functions and any reliance on very old default behaviour.

Do I need to keep ?sslmode=require?

Swyftstack enforces SSL by default and manages the certificates for you, so a standard rejectUnauthorized: true client works out of the box. You can keep sslmode=require in your connection string; it stays valid.

What happens to my Heroku follower (read replica)?

Followers are a Heroku construct and don't migrate as-is. Migrate the leader; if you need read scaling afterwards, talk to us about the right pattern for your workload rather than copying Heroku's follower setup one-to-one.

Can I do a dry run?

Yes. Migration is free until you switch DATABASE_URL. Run it, point a staging copy of your app at the new connection string, inspect the result, and walk away if anything looks off. Your Heroku database never stops serving production in the meantime.

Cut your bill by more than half.