데이터베이스에서 변수를 가져 오려는 초기화 프로그램이 있습니다. 이 초기화는 앱을 rails server
또는 프로덕션에서 실행하는 경우에만 필요하며보기에서만 사용됩니다.초기화 도구를 작성하여 데이터베이스가 올바르게 설정되어있을 때만 실행하는 방법은 무엇입니까?
config.default_country_id = Spree::Country.find_by(name: 'Netherlands').try(:id)
(db:setup
그것을 만들려고한다) 값이 존재하지 않는 반입되고있는 테이블 때문에, 빈 데이터베이스 (또는 레이크 작업) 실패에 rake db:setup
를 실행.
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'revitalised_staging.spree_countries' doesn't exist:...
대신 이러한 초기화 프로그램을 작성해야합니까? 데이터베이스가 올바르게 설정되어 있지 않으면 건너 뛸 수있는 일반적인 조건으로 포장 할 수 있습니까? 대신 필자는 필 요한 것을 알 때 (즉, 몇 가지 명령이나 모드를 허용 목록에 포함) 실행해야합니까?
AFAIK,'defined (Spree :: Country)'는 상수가 정의되어 있으면 테이블이 존재하는지 여부에 관계없이 "true-ish"값을 반환합니다. – berkes