This short guide will install PostgreSQL database on your local Ruby on Rails development environment.
The database will be placed in
vendor/postgres* folder depending on your PostgreSQL version.
Find out your local PostgreSQL version
$ postgres --version postgres (PostgreSQL) 14.8
Create local database for Postgres
$ pg_ctl init -D vendor/postgresql<version>
Start PostgreSQL on your terminal. After you have it running, open another terminal window and perform the other steps.
$ postgres -D vendor/postgresql14.2/ 2023-08-19 18:09:38.097 EEST  LOG: starting PostgreSQL 14.8 (Homebrew) on aarch64-apple-darwin22.4.0, compiled by Apple clang version 14.0.3 (clang-1403.0.22.14.1), 64-bit 2023-08-19 18:09:38.099 EEST  LOG: listening on IPv6 address "::1", port 5432 2023-08-19 18:09:38.099 EEST  LOG: listening on IPv4 address "127.0.0.1", port 5432 2023-08-19 18:09:38.099 EEST  LOG: listening on Unix socket "/tmp/.s.PGSQL.5432" 2023-08-19 18:09:38.101 EEST  LOG: database system was shut down at 2023-08-19 18:09:35 EEST 2023-08-19 18:09:38.102 EEST  LOG: database system is ready to accept connections ... ...
Create a superuser for your database
$ createuser postgres -s
Create an user for your local development and use password
$ createuser localdev -d -P
Depending on your PostgreSQL access control configuration, you might need to set username and password configuration to your
# config/database.yml ... ... development: ... # Add these two lines username: localdev password: password ... test: ... # Add these two lines username: localdev password: password ...
Run Rails task to create the databases. If you see following output, databases for development and test environments were created successfully.
$ rails db:create Created database '<rails_project_name>_development' Created database '<rails_project_name>_test'
Add the following line to
# Procfile.dev db: postgres -D vendor/postgresql<version>
Add this following line to
.gitignore and commit it to your repository. This way your database will not be commited to the git repository.
# .gitignore /vendor/postgres*
Finally, start your Rails development engine and you’re good to go!