by cleany


Postgrest on Heroku

The best way to build an API, now for Heroku.

Make a git repo with anything in it. The repo is just a pretext to push to Heroku.

Note that the Heroku PostgreSQL addon will not work because it does not support having multiple database roles. I would recommend spinning up a Postgres database with Amazon RDS. Make sure you create it in the Virginia region because that's where Heroku's dynos are and it will decrease latency between the server and db.

Next install the Heroku Toolbelt and run these commands.

# first set up a new app
heroku apps:create --buildpack

# now fill in the values specific to your database
heroku config:set POSTGREST_VER=
heroku config:set DB_SCHEMA=public
heroku config:set DB_POOL=60

# If the db run locally DATABASE_URL could be used, simply promote the database
# Thus db-uri will be set to database_url and db-anon-role will be extracted from it.
heroku pg:promote DATABASE

# otherwise you could manually define the db uri and the anon role
heroku config:set DB_URI=postgres://
heroku config:set DB_ANON_ROLE=postgrest_test

git push heroku master

To determine the best value for DB_POOL ask the database by running this SQL:

show max_connections;