# Installing Postgres via Brew ## Pre-Reqs [Brew Package Manager](http://brew.sh) In your command-line run the following commands: 1. `brew doctor` 1. `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. 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. 7. Run the command: ``createdb `whoami` `` 8. 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.