>

저는 프로그래밍 초보자입니다. Rails 앱을 만들고 있는데 이제 Heroku로 푸시하고 싶습니다. 데이터베이스를 sqlite 3에서 postresql로 변환하기 위해 Heroku의 지침 을 따랐습니다. 그런 다음 로컬 호스트에서 앱을 마이그레이션하거나 체크 아웃하려고 할 때이 오류가 발생합니다

"PG :: ConnectionBad : 치명적 : 호스트"[local] ", 사용자"keemtaker ", 데이터베이스"tuma_database_development ", SSL off"에 대한 pg_hba.conf 항목 없음

이 같은 문제에 대한 이전 답변을 확인했지만 너무 혼란스럽고 압도적입니다. 이 오류를 해결하기 위해 단계별 가이드를 얻을 수 있다면 좋을 것입니다. PostgreSQL을 문제없이 사용했습니다. 이것이 내 gemfile의 모습입니다

   source 'https://rubygems.org'
ruby '2.3.4'
gem 'figaro'
gem 'jbuilder', '~> 2.0'
gem 'puma'
gem 'rails', '5.1.4'
gem 'redis'
gem 'cloudinary'
gem 'carrierwave', '~> 1.2'
gem 'rails_admin', '~> 1.2'
gem 'pg'
gem 'autoprefixer-rails'
gem 'bootstrap-sass'
gem 'jquery-rails'
gem 'font-awesome-sass'
gem 'sass-rails'
gem 'simple_form'
gem 'turbolinks', '~> 5.0.0'
gem 'coffee-rails'
gem 'uglifier'
gem 'webpacker'
gem 'devise'
gem 'ransack'
gem 'trix'

gem "letter_opener", group: :development

group :development do
  gem 'web-console', '>= 3.3.0'
end
group :development, :test do
  # gem 'binding_of_caller'
  # gem 'better_errors'
  gem 'pry-byebug'
  gem 'pry-rails'
  gem 'listen', '~> 3.0.5'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

database.yml에 나는있다

   default: &default
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000
development:
  <<: *default
  database: tuma_database_development
test:
  <<: *default
  database: tuma_database_test
production:
  <<: *default
  database: tuma_database_production


  • 답변 # 1

    이 구성에 의해 앱은 로컬 데이터베이스를 찾게됩니다.

    하지만 여기에서 조언하는 구성을 참조하십시오 :

    <올>

    포스트그레스 추가 기능 추가

    제작 구성 라인을 위의 링크에 표시된 라인으로 교체

    추가 기능을 설치할 때 heroku는 프로젝트에 DATABASE_URL 환경 변수를 추가합니다. Rails는이 변수를 자동으로 찾아서 선택합니다 (여기 참조)

  • 답변 # 2

    인프라의 로컬 데이터베이스에 액세스 할 수 없으므로 Heroku의 데이터베이스 URL을 지정해야합니다. 당신의 production 를 교체   database.yml 의 섹션  이것으로 :

    production:
      url: <%= ENV["DATABASE_URL"] %>
      pool: 15
    
    
    <시간>

    따라서 완전한 database.yml  다음과 같이 보일 것입니다 :

    default: &default
      adapter: postgresql
      encoding: unicode
      pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
      timeout: 5000
    development:
      <<: *default
      database: tuma_database_development
    test:
      <<: *default
      database: tuma_database_test
    production:
      <<: *default
      url: <%= ENV["DATABASE_URL"] %>
    
    
    <시간>

    출처 : Rails on Heroku 시작하기

  • 이전 javascript - 버튼 클래스를 btn-default에서 btn-success로 변경하는 방법
  • 다음 asyncstorage - 반응 형 동기화 스토리지 솔루션