Migrate to Heroku

Setup Heroku account

First make sure you have an Heroku account, if you don't, go to https://signup.heroku.com

Installing CLI

Next let's install the Heroku CLI

brew install heroku/brew/heroku

Now we can login in the CLI

heroku login

Enter your Email and password.

Create your application

Using the CLI we can create our application like this

Add a Profile and .swift-version, make sure you are in your project folder

echo "web: Run --env production --hostname --port $PORT" > Procfile
echo "5.1.3" > .swift-version

Now let's add the files to git

git add .
git commit -am "Setup Heroku deployment"

Now we can create our app and deploy it

heroku apps:create your-application-name --buildpack vapor/vapor
git push heroku master

heroku ps:scale web=1

heroku apps:create can take a --region eu if you want your app in EU rather than the US.

Create a Postgres database

Create a postgres database on Heroku

heroku addons:create heroku-postgresql:<PLAN_NAME>

To create a free plan database, use

heroku addons:create heroku-postgresql:hobby-dev

Migrate data from Red to Heroku

Start by finding the credentials, these are exposed in the dashboard, under your server, databases and your database. Click Show passwords. Copy the URL and use it in the next step

Dump your database

Let's start by exporting data to a file.

pg_dump --dbname=<CONNECT-URL> > /tmp/my-db.sql

Import the file into Heroku

Find the credentials you can get them by running this command

heroku pg:credentials:url DATABASE

Now use the credentials in the command below

psql -h <HOSTNAME> -U <USER> -W -d <DATABASE> -f /tmp/my-db.sql

You should now be able to use your application on Heroku.