If you want to host your Ruby on Rails application with Heroku- your database must be PostgreSQL.
Unfortantely, it can be difficult to get setup if you’ve never done anything like use the Heroku CLI or manually create databases in psql.
Here are the quick and dirty steps for setting up your rails application for hostign on heroku.
If you haven’t installed heroku-cli, that is step number one.
Visit the download instructions to figure out how to install heroku.
For me (xubuntu) I used snap.
sudo snap install --classic heroku
Next, you’ll be prompted to setup/login with Heroku.
Create the application
If you are starting from scratch, run the rails new command and specify you want a postgreSQL database (since thats what heroku requires).
rails new myapp –database=postgresql
Move into your new application and run
cd myapp bundle install ... Bundle complete! 18 Gemfile dependencies, 78 gems now installed.
Test the databases
For my setup, I have to manually create the databases in PostgreSQL.
Run the following commands, using your application’s name instead of myapp.
psql CREATE DATABASE myapp_development; CREATE DATABASE myapp_test; \list;
psql didn’t work or needs to be setup, I wrote a short post about getting setup with PostgreSQL.
Go back into your application and run
rails db:migrate to test your databases were added correctly.
No error message? Good!
Create a welcome page
Rails 5.x no longer includes a default page in a production environment.
So we will have to make one! First create a controller.
rails g controller pages home
Now create a
home.html.erb file in the
Add some simple HTML to the homepage.
<h1>Rails!</h1> <a href="http://gerrg.com">GERRG.com Learn to build a Rails Application and Host with Heroku</a>
Finally add the route to the newly create homepage. Open up
config/routes.rb and add the following line.
Open up your terminal and launch your server with
Add it to Github
Now that you’ve got your self a fancy new rails application complete with default page in production environments…
Its time to add it to GitHub before we host the application on Heroku.
Setup repository on GitHub: add, commit and push application.
git add -A git commit -n 'init commit' git push
Your push will not work if you haven’t setup your remote origin. In fact, you’ll get an error message about it.
Host on Heroku
Okay so far we have:
- created our rails application
- setup our postgreSQL databases
- built a default page for our production environment
- and created a repository on github.
Finally, we are going to host our rails application with Heroku and have our site out there on the world wide web.
Run Heroku create to create a repository with Heroku, then push your application from git to Heroku.
heroku create git push heroku master
If the command completes, the push was complete and you should be able to visit your application with