GuidesImports & Migrations
Migrate from Render
Move a Render Postgres database into CapyDB.
Get the source connection string
In the Render dashboard: open the Postgres instance → Info page → Connections section. Render shows:
- Internal Database URL — only reachable from services in the same Render region. Not usable for the import.
- External Database URL — reachable from the internet. Use this one. It looks like:
postgres://user:password@dpg-xxxxxxxxxxxx-a.frankfurt-postgres.render.com/dbnameRender-specific caveats
- Access control: Render Postgres has an IP allow-list ("Access Control"). The default allows all (
0.0.0.0/0); if yours was tightened, the import will time out — temporarily allow public access (or contact support for the importer's address situation) for the duration of the copy. - TLS: external connections require TLS; the importer applies
sslmode=requireautomatically if the URL does not specify it. - Plan expiry: free Render databases expire after 90 days — if you are migrating off one for that reason, do the import before the expiry date, not on it.
Preflight
capydb import preflight --source-url "postgres://user:password@dpg-....render.com/dbname"Import
Pause writers, then:
capydb import --source-url "postgres://user:password@dpg-....render.com/dbname" --recreate --waitAfter the import
- Spot-check sequences.
\dxfor extensions.ANALYZE;- Update
DATABASE_URLin your Render services' environment (or wherever the app runs), deploy, and watch Observability.