Migrating from Heroku to Metabase Cloud

There are some additional steps you’ll need to take to migrate from Heroku to Metabase Cloud. Let’s walk through it.

Follow the migration guide to get the migration script

You should follow along with the migration guide. Once you download the migration script you’ll need to get shell access to your Heroku server in order to execute the migration script.

Install Heroku CLI for your OS

To get shell access, follow the instructions for your operating system to install the Heroku CLI.

Get shell access to your Heroku server

In order to get access to the server running Metabase on Heroku, you’ll need to use Heroku Exec (SSH tunneling).

With the Heroku CLI installed, run:

heroku ps:exec --app your-metabase-app-name-in-heroku

Replacing your-metabase-app-name-in-heroku with your app name.

You may be prompted to log in to Heroku through your browser. Once logged in, you may get a prompt saying that running this command for the first time requires a dyno restart: hit y to continue. The dyno restart will take a bit, but once it restarts, you’ll get a shell prompt for the server running your Metabase in Heroku.

Set your MB_DB_CONNECTION_URI

Before running the migration script, you’ll need to set the MB_DB_CONNECTION_URI.

To get the Config Vars, log in to Heroku and go to the Settings tab for your Metabase app. In the Config vars section, you’ll see your DATABASE_URL. Copy the corresponding connection URL string, which you’ll use to set your MB_DB_CONNECTION_URI. Setting this environment variable will let your new Metabase Cloud instance access data in your existing application database.

In the shell logged into your Heroku server, run:

export MB_DB_CONNECTION_URI=YOUR_DATABASE_URL_GOES_HERE

Run the migration script in your heroku

In the same shell session, run your migration script.

curl -s long-metabase-migration-script-url | bash

That should be all there is to it. See the migration guide for details.