タイトルのエラーが出たので原因を探していたところ、以下が原因だった。
現状の detabase.yml
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: <%= ENV.fetch("POSTGRES_USER") { 'default' } %>
password: <%= ENV.fetch("POSTGRES_PASSWORD") { 'password' } %>
host: <%= ENV.fetch("DB_HOST") { 'db' } %>
development:
<<: *default
database: app_dev
test:
<<: *default
database: app_test
production:
primary:
<<: *default
url: <%= ENV["DATABASE_URL"] %>
動作した detabase.yml
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: <%= ENV.fetch("POSTGRES_USER") { 'default' } %>
password: <%= ENV.fetch("POSTGRES_PASSWORD") { 'password' } %>
host: <%= ENV.fetch("DB_HOST") { 'db' } %>
development:
<<: *default
database: app_dev
test:
<<: *default
database: app_test
production:
<-- ここを修正 -->
<<: *default
url: <%= ENV["DATABASE_URL"] %>
このprimaryの書き方はrails 6,7あたりの記述らしく 少なくともRenderを使ったrails8の私の環境ではこの設定で良い模様
追記: solid_queueの使用時などdatabaseを2個使いたい時に使うためのものっぽい
追記: primary: &primary_development ←こういうふうに使うっぽい
こうすることでdefaultの設定が適用されると思われる