

**できないこと**  
自作アプリをRender.comで無事にデプロイ後、ローカルでも開発を進めようと思ったのですが、DBにアクセスできなくなってしまいました。

**エラー内容**  
Rspecでテストをしようと思ったのですが、エラーが出たため試しに"rails db:reset"をしてみました。そしたら、同様に、以下のエラーが出ました。

[code]

    rails aborted!
    ActiveRecord::ConnectionNotEstablished: could not translate host name "xxxxxxxxxxxx" to address: Name or service not known
    
[/code]

**やりたいこと**  
このエラーを解消して、きちんとローカルでも開発し続けるようにしたいです。

**懸念**  
エラー文で検索したら解決策っぽい記事は出てきたのですが、デプロイした方にも何か影響がないか懸念しています。どなたかご存知であればアドバイスください。

**追加項目**  
_database.yml_

[code]

    # PostgreSQL. Versions 9.3 and up are supported.
    #
    # Install the pg driver:
    #   gem install pg
    # On macOS with Homebrew:
    #   gem install pg -- --with-pg-config=/usr/local/bin/pg_config
    # On macOS with MacPorts:
    #   gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
    # On Windows:
    #   gem install pg
    #       Choose the win32 build.
    #       Install PostgreSQL and put its /bin directory on your path.
    #
    # Configure Using Gemfile
    # gem "pg"
    #
    default: &default
      adapter: postgresql
      encoding: unicode
      # For details on connection pooling, see Rails configuration guide
      # https://guides.rubyonrails.org/configuring.html#database-pooling
      pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
    
    development:
      <<: *default
      database: k_development
    
      # The specified database role being used to connect to postgres.
      # To create additional roles in postgres see `$ createuser --help`.
      # When left blank, postgres will use the default role. This is
      # the same name as the operating system user running Rails.
      #username: k
    
      # The password associated with the postgres role (username).
      #password:
    
      # Connect on a TCP socket. Omitted by default since the client uses a
      # domain socket that doesn't need configuration. Windows does not have
      # domain sockets, so uncomment these lines.
      #host: localhost
    
      # The TCP port the server listens on. Defaults to 5432.
      # If your server runs on a different port number, change accordingly.
      #port: 5432
    
      # Schema search path. The server defaults to $user,public
      #schema_search_path: myapp,sharedapp,public
    
      # Minimum log levels, in increasing order:
      #   debug5, debug4, debug3, debug2, debug1,
      #   log, notice, warning, error, fatal, and panic
      # Defaults to warning.
      #min_messages: notice
    
    # Warning: The database defined as "test" will be erased and
    # re-generated from your development database when you run "rake".
    # Do not set this db to the same as development or production.
    test:
      <<: *default
      database: k_test
    
    # As with config/credentials.yml, you never want to store sensitive information,
    # like your database password, in your source code. If your source code is
    # ever seen by anyone, they now have access to your database.
    #
    # Instead, provide the password or a full connection URL as an environment
    # variable when you boot the app. For example:
    #
    #   DATABASE_URL="postgres://myuser:mypass@localhost/somedatabase"
    #
    # If the connection URL is provided in the special DATABASE_URL environment
    # variable, Rails will automatically merge its configuration values on top of
    # the values provided in this file. Alternatively, you can specify a connection
    # URL environment variable explicitly:
    #
    #   production:
    #     url: <%= ENV["MY_APP_DATABASE_URL"] %>
    #
    # Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
    # for a full overview on how database connection configuration can be specified.
    #
    production:
      <<: *default
      database: k_production
      username: <%= ENV["K_DATABASE_USERNAME"] %>
      password: <%= ENV["K_DATABASE_PASSWORD"] %>
    
[/code]


CC BY-SA 4.0
2022-12-11T12:40:11.327
92703
2022-12-14T13:17:19.547
2022-12-14T13:17:19.547
40091
40091
question
ruby-on-rails ruby postgresql
Railsデプロイ後にローカルでDBが起動できない。


database.ymlを変更していませんか？

render.comならDATABASE_URL環境変数に接続情報を入れてると思うので、そうであれば次のような感じで、ローカルと本番同じファイルで設定を使い分けるのが一般的かと思います。

[code]

    default: &default
      adapter: postgresql
      encoding: unicode
      pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
      host: <%= ENV.fetch("DB_HOST") { "localhost" } %>
      port: <%= ENV.fetch("DB_PORT") { 5432 } %>
      username: <%= ENV.fetch("DB_USERNAME") { "postgres" } %>
      password: <%= ENV.fetch("DB_PASSWORD") { "password" } %>
    
    development:
      <<: *default
      database: myapp_development
    
    test:
      <<: *default
      database: myapp_test
    
    production:
      adapter: postgresql
      encoding: unicode
      pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
      url: <%= ENV.fetch("DATABASE_URL") { "" } %>
    
[/code]

状況が分からないので、これ以上はなんとも


CC BY-SA 4.0
2022-12-11T13:15:35.037
92704
2022-12-11T13:15:35.037
55905
92703
answer