How to move applications and datastores between clusters in Porter
Last updated: February 6, 2026
While Porter doesn't currently offer an automated way to move applications and datastores between clusters, you can follow these steps to manually migrate your resources:
Moving Applications
Export the
porter.yamlfile for each application you want to move:Go to the application's Settings tab
Look for the option to export the
porter.yamlfileDownload the file for each application
In the new cluster, use the exported
porter.yamlfiles to recreate the applications with the same settingsPut your new app's services on sleep mode by accessing each service's Resources tab and checking the "Pause all instances" checkbox (we recommend pausing apps till the DNS migration begins)
After all the apps are copied to the new cluster, you can begin the DNS migration. Start waking up your apps' services from the sleep state. Then, point your DNS domains to the new apps. To avoid downtime during this part, you need to keep the old cluster app replicas spinning while you change the DNS to the new cluster app replicas till you see traffic stop on the old replicas.
After all apps are fully moved to the new cluster, you can delete the old one.
For more information on using porter.yaml files, refer to our Configuration as Code documentation.
Moving Datastores
Datastores need to be migrated manually. The process varies depending on the type of datastore. For PostgreSQL datastores, we have a blog post with some ways of migrating databases with near-zero downtime.
Conclusion
While this process requires manual effort, it allows you to maintain full control over the migration and ensure that all your applications and data are correctly transferred to the new cluster.