문제

capistrano gem을 사용하여 Ruby on Rails 애플리케이션의 프로덕션 환경을 가상 개인 서버에 배포하고 있습니다.배포하려면 다음 명령을 실행합니다.

bundle exec cap production deploy

현재 프로덕션 릴리스가 어떤 환경에서 작동하는지 확인하지 않는 한 모든 것이 잘 작동하는 것 같습니다.

이를 확인하는 데 사용하는 한 가지 방법은 다음을 실행하는 것입니다.

rails console
Rails.env

내가 받은 대답은 '개발'인데 꽤 무섭다.

다른 테스트 중:현재 릴리스에서 다음을 실행할 때:

rails db

mydatabase_development가 생성되지 않았다는 오류가 발생합니다.

내 응용 프로그램이 잘 실행되는 것 같지만 이로 인해 앞으로 큰 문제가 발생할지 여부는 알 수 없습니다.가장 먼저:내 Live Copy가 실제로 개발 중에 실행 중인지 확인할 수 있는 방법이 있습니까?둘째:문제가 있는 경우 프로덕션 환경을 배포하기 위해 capistrano를 어떻게 구성합니까?

도움이 되었습니까?

해결책

명심하세요 rails console 지시에 따라 현재 환경에 참여합니다. RAILS_ENV 또는 RACK_ENV 당신의 환경에서.서버에서 이를 명시적으로 설정하지 않으면 아마도 기본값으로 설정될 것입니다. development.

이 문제를 해결하는 한 가지 방법은 강제로 .bash_profile 또는 사용 중인 쉘 프로필이 무엇이든 상관없습니다.예를 들어:

export RAILS_ENV=production

그러면 사용할 수 있게 되고 Rails 셸을 연결하면 제대로 시작됩니다.

참고로, 해당 이름을 가진 항목이 있어서는 안 되기 때문에 프로덕션 서버에서 개발 모드로 시작할 수도 없습니다. config/database.yml.가장 좋은 방법은 저장하는 것입니다. config/database.yml 오직 프로덕션 서버에서 Capistrano 배포 중에 이동하세요.

이것을 당신의 config/deploy.rb:

set :linked_files, %w[
  config/database.yml
]

그런 다음 프로덕션 전용 구성을 생성합니다. shared/config/database.yml 배포할 때 제자리에 연결됩니다.꼭 제외하세요 config/database.yml 버전 제어 시스템에서 배포되지 않도록 합니다.

귀하의 사이트가 괜찮은 이유는 Passenger와 같은 런처가 자동으로 설정하기 때문입니다. RACK_ENV 에게 production 달리 구성하지 않는 한.그러나 이것은 쉘에 영향을 미치지 않습니다. 기본값은 다음과 같습니다. development.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top