2013-08-23 2 views
0

데이터베이스 마이 그 레이션을 생성하고 개발 및 프로덕션 서버에서 데이터를 마이그레이션했습니다. 비어있는 경우 rake db : seed 및 다른 유사한 방법을 피하는 경우 응용 프로그램에서 데이터베이스를 채우고 싶습니다. 나는 rake db : seed를 통해이 작업을 수행 할 수 있다는 것을 알고 있지만, 응용 프로그램이 이미 배포 되었기 때문에 capistrano 용 deploy.rb를 오염시키지 않거나 개발 및 생산 모두 수동으로 수행하고 싶지 않습니다.은 데이터베이스가 응용 프로그램에서 비어 있으면 처음에는 데이터를 채 웁니다.

열거 나 내가 좋아하는 뭔가를 할 수 액티브 레코드의 초기화 데이터베이스에 어떤 훅이 있습니까

if !Pages.first 
    Pages.populate 
end 

나는 데이터베이스를 채우는 모든 권장 방법을 알고,하지만 난 여전히 응용 프로그램에서 작업을 수행하는 것을 선호 .

감사

답변

0

당신이 벗어났습니다,이 세상에서 가장 좋은 생각이 아니다,하지만 어쩌면 당신은 이러한 접근 방식을 사용하여 시도해 볼 수도 있습니다 :

  1. 때마다 불려가는 이니셜을 레일 환경이로드됩니다.
  2. config.after_initialize 블록에 무엇인가가 있습니다. http://guides.rubyonrails.org/configuring.html
+0

감사합니다. 2 완벽하게 작동하면서도 더 간단한 솔루션을 발견했습니다. 모델에서 initdata 메서드를 정의하고 다른 마이그레이션에서 호출합니다. 이 방법은 다음 캡 배포시 프로덕션 서버로 배포됩니다. 어쨌든 데이터베이스 열기, 첫 번째 액세스 또는 simmilar에 ActiveRecord에 고리가 있기를 바랬습니다 ... –

관련 문제