Instantly share code, notes, and snippets.

What would you like to do?
Installing Postgres via Brew (OSX)

Installing Postgres via Brew


Brew Package Manager

In your command-line run the following commands:

  1. brew doctor
  2. brew update


  1. In your command-line run the command: brew install postgresql

  2. Run the command: ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

  3. Create two new aliases to start and stop your postgres server. They could look something like this:

    alias pg_start="launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist"
    alias pg_stop="launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist"
  4. Run the alias you just created: pg-start. Use this comment to start your database service.

    • alternatively, pg-stop stops your database service.
  5. Run the command: createdb `whoami`

  6. Connect to your postgres with the command: psql

  7. brew reinstall readline - if needed

  8. createuser -s postgres - fixes role "postgres" does not exist

  9. Test with psql command

    $ psql
    psql (10.0)
    Type "help" for help.


What is this ln command I ran in my Terminal?

from the man ln command

The ln utility creates a new directory entry (linked file) which has the same modes as the original file. It is useful for maintaining multiple copies of a file in many places at once without using up storage for the copies''; instead, a link points'' to the original copy. There are two types of links; hard links and symbolic links. How a link ``points'' to a file is one of the differences between a hard and symbolic link.

What is launchctl?

from the man launchctl command

launchctl interfaces with launchd to manage and inspect daemons, angents and XPC services.


Create database

createdb <database_name>

createdb mydjangoproject_development

List databases

psql -U postgres -l

Show tables in database

psql -U postgres -d <database_name>

psql -U postgres -d mydjangoproject_development

Drop database

dropdb <database_name>

dropdb mydjangoproject_development

Restart database

dropdb <database_name> && createdb <database_name>

dropdb mydjangoproject_development && createdb mydjangoproject_development


This comment has been minimized.

nydiarra commented Aug 20, 2018

I like your post. Very useful.


This comment has been minimized.

Piglacquer commented Sep 10, 2018

Nice post, one little typo: Between steps 3 & 4 the aliases are different. Step 3 is pg_start // pg_stop, and step 4 is pg-start // pg-stop. Thanks!


This comment has been minimized.

sandro-git commented Sep 22, 2018

thanks it help me a lot


This comment has been minimized.

leftsider commented Oct 17, 2018

Simple and clear. Cheers!


This comment has been minimized.

cyzanfar commented Oct 18, 2018

awesome stuffffff


This comment has been minimized.

Darius-Ndubi commented Nov 6, 2018

Works like a charm.


This comment has been minimized.

sergeev commented Nov 21, 2018

Thx! очень помогли!


This comment has been minimized.

Physsi07 commented Dec 11, 2018

Super helpful, thank you so much 👍 💯

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment