Skip to content

Instantly share code, notes, and snippets.

@sgnl
Last active April 21, 2024 23:18
Show Gist options
  • Save sgnl/609557ebacd3378f3b72 to your computer and use it in GitHub Desktop.
Save sgnl/609557ebacd3378f3b72 to your computer and use it in GitHub Desktop.
Installing Postgres via Brew (OSX) (outdated see top most note)

Outdated note: the process is a lot easier now: after you brew install postgresql you can initialize or stop the daemon with these commands: brew services start postgresql or brew services stop postgresql.

new out put may look like

To have launchd start postgresql now and restart at login:
  brew services start postgresql
Or, if you don't want/need a background service you can just run:
  pg_ctl -D /usr/local/var/postgres start

thank you commenters (sorry I didnt notice you all before but thankful for not getting notifications 🤭)

Installing Postgres via Brew

Pre-Reqs

Brew Package Manager

In your command-line run the following commands:

  1. brew doctor
  2. brew update

Installing

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

  2. Read the Caveats section that is outputted to the Terminal. (out dated?)

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

  4. Open your zsh config file: subl ~/.zshrc

  5. At the bottom of the file, 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"
    
  6. Run the command: source ~/.zshrc to reload your configuration.

  7. Run the alias you just created: pg-start. Use this comment to start your database service.

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

  9. Connect to your postgres with the command: psql

Details

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.

@adiakritos
Copy link

What Caveats section?

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