エラーの園

仕事、日常のあらゆるエラーと戦い、先人の知恵も拝借して何としても解決……したい!

実録『dyld: Library not loaded:〜』その3 (ようやくPostgreSQLバージョンアップの瞬間)

エラー発生前の操作や設定など

『エラーの園』前回までのお話

brew upgradeのエラーを潰して、潰して、潰した🔨
実録『dyld: Library not loaded:〜』その2 (brew upgradeのエラーいろいろ) - エラーの園

参考サイト

1. 前にエラーになったときにお世話になったサイト

unot13.hatenablog.com   ↑
ありがとうございます! 参考になりました 😌
brew info めっちゃ、分かりやすいです!

エラー内容

エラー1

$ brew postgresql-upgrade-database
Error: No such file or directory @ rb_sysopen - /usr/local/var/postgres/PG_VERSION

エラー2

$ brew install postgresql
Updating Homebrew...
Warning: postgresql 12.2_1 is already installed and up-to-date
To reinstall 12.2_1, run `brew reinstall postgresql`

作業環境

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.4

PostgreSQL Version: 10 -> 12

解決手順

1. 'brew info postgresql' で、エラーが無いか確認する。

$ brew info postgresql
postgresql: stable 12.2 (bottled), HEAD
Object-relational database system
https://www.postgresql.org/
/usr/local/Cellar/postgresql/12.2_1 (3,218 files, 37.8MB) *
  Poured from bottle on 2020-05-07 at 15:35:44
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb
==> Dependencies
Build: pkg-config ✔
Required: icu4c ✔, krb5 ✔, openssl@1.1 ✔, readline ✔

...(以下、省略)...

2.やれやれ、やっとだ。ではbrew postgresql-upgrade-database実行!

$ brew postgresql-upgrade-database
Error: No such file or directory @ rb_sysopen - /usr/local/var/postgres/PG_VERSION
2−1.(考察)エラー1のパスを確認してみた。



。。。すんません😢 確認したけど、ログ取り忘れた。
ls -ll /usr/local/var/postgres/を実行すると、
postgres.old以外何も無かった。
とりあえず、postgres.oldは、下記コマンドで削除した。
'rm -rf /usr/local/var/postgres/postgres.old' で削除した。

2−2.再度brew postgresql-upgrade-database実行。

またエラー1が出た。

2−3.(考察)推理してみる。

upgradeするとき、下記の様に旧バージョンはバックアップ取っているから、
旧バージョンが必要かも。。。。/usr/local/var/postgresは空だからupgradeできない。

$ ls -ll /usr/local/var/
total 0
drwxr-xr-x   3 [user_name]  admin   96  5  7 12:43 bac
drwxr-xr-x   4 [user_name]  admin  128 12 23  2017 homebrew
drwxr-xr-x  13 [user_name]  admin  416  7  6  2019 log
drwxr-xr-x  27 [user_name]  admin  864  2 11 12:32 mysql
drwx------  26 [user_name]  admin  832  5 11 09:42 postgres
drwx------  24 [user_name]  admin  768  6 23  2019 postgresql@10
drwx------  24 [user_name]  admin  768  5  7 12:53 postgresql@11

そういえば、エラーで「見つけられない」と怒っていたファイルは、
/usr/local/var/postgres/PG_VERSIONだ。

【結論】
空っぽなら「installしよう!」と考えた。

※今、考えたら/usr/local/var/postgresを削除して、
/usr/local/var/postgres@11をに名称変更→
brew postgresql-upgrade-databaseでも良かった。
すべての経験は人生の糧になる🤨よし、次行ってみよー!

3.brew install postgresql実行

$ brew install postgresql
Updating Homebrew...
Warning: postgresql 12.2_1 is already installed and up-to-date
To reinstall 12.2_1, run `brew reinstall postgresql`

。。。すでにあるって知ってるんやね😓 なるほど、reinstallか。

3.brew reinstall postgresql実行

$ brew reinstall postgresql
==> Reinstalling postgresql
==> Downloading https://homebrew.bintray.com/bottles/postgresql-12.2_1.catalina.bottle.tar.gz
Already downloaded: /Users/naitoukazue/Library/Caches/Homebrew/downloads/c5a9a562b61627e48d66f4f76faa6ea1e0dbecddebf27c7825592722ca6364c8--postgresql-12.2_1.catalina.bottle.tar.gz
==> Pouring postgresql-12.2_1.catalina.bottle.tar.gz
==> /usr/local/Cellar/postgresql/12.2_1/bin/initdb --locale=C -E UTF-8 /usr/local/var/postgres
...(中略)...
==> Summary
🍺  /usr/local/Cellar/postgresql/12.2_1: 3,218 files, 37.8MB

終わった😑
おっと、確認、確認。

4.確認

4−1.バージョン確認。
$ psql --version
psql (PostgreSQL) 12.2

OK!

4−2.起動確認

環境変数を設定しているのでパスは省略して実行。  (環境変数の設定は上記参考サイトを参照ください)

$ pg_ctl start
waiting for server to start....2020-05-07 19:43:22.466 JST [19213] LOG:  starting PostgreSQL 12.2 on x86_64-apple-darwin19.4.0, compiled by Apple clang version 11.0.3 (clang-1103.0.32.59), 64-bit
2020-05-07 19:43:22.467 JST [19213] LOG:  listening on IPv6 address "::1", port 5432
2020-05-07 19:43:22.467 JST [19213] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2020-05-07 19:43:22.470 JST [19213] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2020-05-07 19:43:22.492 JST [19214] LOG:  database system was shut down at 2020-05-07 19:43:17 JST
2020-05-07 19:43:22.499 JST [19213] LOG:  database system is ready to accept connections
 done
server started

OKでございます👍

f:id:kuroneko-r011117:20200511155021j:plain