`database.yml` 파일 내의 환경 변수에 액세스하지 못함
내 development.yml
파일에 다음과 같은 개발 섹션이 있습니다.
development:
adapter: postgresql
host: localhost
database: testtb
username: app_user
password: ENV['APP_USER_POSTGRES_PASSWORD'] <= Troublesome line
를 통해 레일을 통해 콘솔을 bundle exec rails console
입력 ENV['APP_USER_POSTGRES_PASSWORD']
하면 로컬 프로필에 DB 암호가 반환됩니다. 그러나 Rails 서버를 시작하면 DB에 강력한 수 없어서 실패합니다.
PGError FATAL: password authentication failed for user "app_user"
이 이전에 DB 암호를 통해 액세스 시도하는 일반 텍스트로 입력 할 때 작동 ENV['...']
했지만 분명한 파일에서 암호를 완전히 유지하고 싶습니다 (코드 저장소에서 제외). 보안되지 않은 다른 변경 사항을 database.yml
파일에 계속 커밋 할 수 있습니다.
내가 놓친 구문에 특별한 것이database.yml
있습니까? 아니면 파일이로드 될 때 어떤 MM 환경 변수를 사용할 수 없습니까?
업데이트 : 일부 사람들은 Rails 4.2.xx에서 작동하지 않습니다 고 의견을보고합니다. 나는 직접 시도하지 즉시 시도하지 않습니다.
아, 해결책을 찾았습니다. 역할 루비를 이슬람입니다.
password: <%= ENV['APP_USER_POSTGRES_PASSWORD'] %>
최신 Rails 버전을 실행하는 경우 짧고 빠른 솔루션! 다음 명령을 실행하십시오.
spring stop
.. 그런 다음 rails console
또는 다른 rails 명령을 실행하십시오. 내 문제는 새 ENV 변수를 새로 고치거나 선택하기 위해 Spring 서버를 다시 시작해야한다는 것입니다. Rails 콘솔을 시작하고 있었는데 Spring을 종료 할 때까지 볼 수 없었습니다.
이전 버전의 Rails는 Spring 서버를 사용하지 않았기 때문에 문제가 없습니다.
문제 해결에 도움이되는 또 다른 도구-다음 명령을 사용하여 database.yml 구성을 인쇄합니다. Rails 콘솔 내에서 실행하는 것을 선호합니다. 그 후 awesome_print를 사용하여 예쁘게 만들 수 있습니다.
이내 rails console
:
puts ActiveRecord::Base.configurations
... 또는 awesome_print 사용
ap ActiveRecord::Base.configurations
또는 대신 명령 줄에서 :
bin/rails runner 'puts ActiveRecord::Base.configurations'
'ProgramingTip' 카테고리의 다른 글
XmlSerializer가 DateTime을 'YYYY-MM-DD hh : mm : ss'로 지정 화합니다. (0) | 2020.11.19 |
---|---|
Python : 목록의 모든 항목이 동일한 항목인지 확인 (0) | 2020.11.19 |
Cloudfront custom-origin 배포가 502 "오류 요청을받을 수 없습니다."를 반환합니다. (0) | 2020.11.19 |
오류 : 각도 입력의 [ng : areq] (0) | 2020.11.19 |
any () 함수의 반대 (0) | 2020.11.19 |