何が起きたのか
PostgreSQLが立ち上がらなくなってしまったので、再度インストールし直した後rails db:prepare
を実行したところ、以下のようなエラーが発生した。
rails aborted! LoadError: dlopen(/Users/xxx/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/pg-1.3.1/lib/pg_ext.bundle, 0x0009): Library not loaded: /opt/homebrew/opt/postgresql/lib/libpq.5.dylib Referenced from: /Users/xxx/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/pg-1.3.1/lib/pg_ext.bundle Reason: tried: '/opt/homebrew/opt/postgresql/lib/libpq.5.dylib' (no such file), '/usr/local/lib/libpq.5.dylib' (no such file), '/usr/lib/libpq.5.dylib' (no such file) - /Users/xxx/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/pg-1.3.1/lib/pg_ext.bundle
エラーの内容としては、以下のファイルがディレクトリ内になくて実行できないとのこと
- /opt/homebrew/opt/postgresql/lib/libpq.5.dylib
- /usr/local/lib/libpq.5.dylib
- /usr/lib/libpq.5.dylib
原因
PostgreSQLを再度インストールしたときにバージョンが上がってしまったことにより、PostgreSQLディレクトリのパスが/opt/homebrew/opt/postgresql@14/
変更されてしまったこと。
🍒~$ ls /opt/homebrew/opt/postgresql@14/lib/postgresql@14 _int.so hstore_plperl.so libpq.dylib refint.so adminpack.so insert_username.so libpqwalreceiver.so seg.so amcheck.so isn.so lo.so sslinfo.so auth_delay.so jsonb_plperl.so ltree.so tablefunc.so auto_explain.so latin2_and_win1250.so moddatetime.so tcn.so autoinc.so latin_and_mic.so old_snapshot.so test_decoding.so bloom.so libecpg.6.14.dylib pageinspect.so tsm_system_rows.so bool_plperl.so libecpg.6.dylib passwordcheck.so tsm_system_time.so btree_gin.so libecpg.a pg_buffercache.so unaccent.so btree_gist.so libecpg.dylib pg_freespacemap.so utf8_and_big5.so citext.so libecpg_compat.3.14.dylib pg_prewarm.so utf8_and_cyrillic.so cube.so libecpg_compat.3.dylib pg_stat_statements.so utf8_and_euc2004.so cyrillic_and_mic.so libecpg_compat.a pg_surgery.so utf8_and_euc_cn.so dblink.so libecpg_compat.dylib pg_trgm.so utf8_and_euc_jp.so dict_int.so libpgcommon.a pg_visibility.so utf8_and_euc_kr.so dict_snowball.so libpgcommon_shlib.a pgcrypto.so utf8_and_euc_tw.so dict_xsyn.so libpgfeutils.a pgoutput.so utf8_and_gb18030.so earthdistance.so libpgport.a pgrowlocks.so utf8_and_gbk.so euc2004_sjis2004.so libpgport_shlib.a pgstattuple.so utf8_and_iso8859.so euc_cn_and_mic.so libpgtypes.3.14.dylib pgxml.so utf8_and_iso8859_1.so euc_jp_and_sjis.so libpgtypes.3.dylib pgxs utf8_and_johab.so euc_kr_and_mic.so libpgtypes.a pkgconfig utf8_and_sjis.so euc_tw_and_big5.so libpgtypes.dylib plperl.so utf8_and_sjis2004.so file_fdw.so libpq.5.14.dylib plpgsql.so utf8_and_uhc.so fuzzystrmatch.so libpq.5.dylib pltcl.so utf8_and_win.so hstore.so libpq.a postgres_fdw.so uuid-ossp.so
解決策
pg
をアンインストールした後、再度インストールする
gem uninstall pg bundle install