How Do I Transition A Custom Domain From One App to Another With Minimal Downtime?

Issue

I have a domain on one app (app-a) and wants to move it to another app (app-b) with minimal downtime.

Resolution

There are two main ways you can approach this issue.

Method 1

  • Find an ideal time to bear small amounts of downtime on your app.
  • When the time comes, remove domain(s) from app-a via heroku domains:remove
  • Add domain(s) to app-b via heroku domains:add
  • Update DNS targets and wait for propagation to complete

If you're using a newer Heroku DNS target - which looks like random-rabbit-1234.herokudns.com - then you won't have to update your DNS targeting. If you're using an older DNS Target - which looks like app-1.herokudns.com - then you'll be required to update your DNS Target as they'll be generated in an entirely new endpoint format.

Method 2

  • Find an ideal time to bear small amounts of downtime
  • When the time comes, provision the Heroku SSL Endpoint Add-On against app-a
  • For each domain, add an SSL Certificate to SSL Endpoint
  • Update DNS targets to point at the SSL Endpoint targets (you can find these via: heroku certs)

At this point, the SSL Endpoint is essentially acting as cover for us to move the domains from one app to the other. Thus, its really only a better solution when you have a lot of domains to move between apps. When all is propagated, you'll want to do the following:

  • Remove domains from app-a via heroku domains:remove
  • Add domains to app-b via heroku domains:add
  • Update DNS to point towards DNS Targets on app-b
  • Deprovision SSL Endpoint Add-On on app-a

Ask on Stack Overflow

Engage with a community of passionate experts to get the answers you need

Ask on Stack Overflow

Heroku Support

Create a support ticket and our support experts will get back to you

Contact Heroku Support
Terms of Service Privacy Cookies © 2019 Salesforce.com