[MacOS] PostgreSQL の全バージョンをアンインストールする方法 ~ Homebrew 編

MacOS に Homebrew でインストールした PostgreSQL の全バージョンをアンインストールする方法をご紹介します。

PostgreSQL をアンインストールしたくなった背景

新規に Ruby on Rails で開発しようと思ったところ、ひさしく PostgreSQL を MacOS の開発環境で利用してなかったので PG::ConnectionBad というエラーで rails server しても PostgreSQL に接続できませんでした。

$ brew services restart postgresql
Stopping `postgresql`... (might take a while)
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql

と brew services restart コマンドで PostgreSQL 再起動してみてもダメだったので、全てアンインストールしてゼロから PostgreSQL をインストールしようと思ったのが、背景です。

インストール済みの PostgreSQL バージョン確認

まず、アンインストールする前にインストール済みの PostgreSQL バージョン確認しておきます。

$ ls /usr/local/Cellar/postgresql
9.3.5_1 9.6.3

ちなみに、現時点の PostgreSQL 最新バージョンは 9.6.5 です。

$ brew info postgresql
postgresql: stable 9.6.5 (bottled), HEAD
Object-relational database system
https://www.postgresql.org/

brew uninstall –force で全てのバージョンをアンインストール

brew uninstall –force postgresql というように –force オプションを付けて brew unistall することで、全てのバージョンをアンインストールすることができます。

$ brew uninstall --force postgresql
Uninstalling postgresql... (2,936 files, 32.1MB)

ちなみに –force オプションを付けないで uninstall すると –force オプションの存在を教えてくれます。

$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.6.3... (3,259 files, 36.6MB)
postgresql 9.3.5_1 1 is still installed.
Remove all versions with `brew uninstall --force postgresql`.

PostgreSQL の設定ファイル、ログ、データなど諸々も削除

initdb で指定した path に諸々のファイルがあると思うので、それらも忘れずに削除しておきましょう。

$ ls -l /usr/local/var/postgres
total 37608
-rw-------   1 codenote  admin     4B 11 25  2014 PG_VERSION
drwx------   5 codenote  admin   170B 11 25  2014 base
drwx------  41 codenote  admin   1.4K  1 30  2015 global
drwx------   3 codenote  admin   102B 11 25  2014 pg_clog
-rw-------   1 codenote  admin   4.4K 11 25  2014 pg_hba.conf
-rw-------   1 codenote  admin   1.6K 11 25  2014 pg_ident.conf
drwx------   4 codenote  admin   136B 11 25  2014 pg_multixact
drwx------   3 codenote  admin   102B  6 28 07:26 pg_notify
drwx------   2 codenote  admin    68B 11 25  2014 pg_serial
drwx------   2 codenote  admin    68B 11 25  2014 pg_snapshots
drwx------   3 codenote  admin   102B  6 30 03:13 pg_stat
drwx------   2 codenote  admin    68B  6 30 03:13 pg_stat_tmp
drwx------   3 codenote  admin   102B 11 25  2014 pg_subtrans
drwx------   2 codenote  admin    68B 11 25  2014 pg_tblspc
drwx------   2 codenote  admin    68B 11 25  2014 pg_twophase
drwx------   4 codenote  admin   136B 11 25  2014 pg_xlog
-rw-------   1 codenote  admin    20K 11 25  2014 postgresql.conf
-rw-------   1 codenote  admin   123B  6 28 07:26 postmaster.opts
-rw-r--r--   1 codenote  admin    18M  6 30 03:13 server.log
rm -rf /usr/local/var/postgres

削除しておかないと、PostgreSQL を再インストールしても、

$ psql -l
psql: could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

というエラーで PostgreSQL に接続できない問題に遭遇するはずです。

最後に PostgreSQL の再インストール

全てアンインストールして綺麗になったら、再び PostgreSQL をインストールしましょう。

PostgreSQL のインストールは別に記事にしているのでこちらをどうぞ。