2011-12-20 2 views
1

JRuby를를 사용하는 컨트롤러 내부에 설치 레이크 작업과 지저귀 : 마이그레이션 및 DB.dB을 실행 나는 프로그래머가 아닌 최종 사용자가 자신이 응용 프로그램을 설치할 수 있도록 허용해야합니다 응용 프로그램을 만드는거야

이미 루비 env + 웹 서버 + 데이터베이스 설치 부분을 처리했습니다. 이제 앱의 데이터베이스를 설정할 수 있어야합니다. rake db : 설치 (설치 프로세스 중에 만 액세스 할 수있는) InstallationController 내에서 실행하는 방법에 대해 생각하고 있습니다.

가능합니까? 어떻게해야합니까?

나는 지저귐과 JRuby를 사용할 계획하고있어, 그래서 난 내 응용 프로그램 내에서 명령 줄을 사용하여 작업을 수행 할 수 없습니다.

+0

afaik 연결할 데이터베이스가 없으면 서버가 시작되지 않습니다. 당신은 activerecord railtie 후크에서 일부 원숭이 패치를해야 할 수도 있습니다. – clyfe

답변

4

만큼 데이터베이스가 존재 (또는 sqlite3를 같이 사용에 생성) 당신은 꽤 쉽게 마이그레이션을 실행할 수있는 응용 프로그램에서 초기화를 던질 수있다.

ActiveRecord::Migrator.migrate(Rails.root.join('db','migrate')) 
2

데이터베이스가 제대로 설정되지 않은 경우 컨트롤러를 사용할 수 없습니다. 설정이 웹 인터페이스를 통해 이루어져야하는 경우 DB 생성, 마이그레이션 등을 담당하는 작은 Sinatra 응용 프로그램을 포함 할 수 있습니다. 이렇게하려면 명령을 쉘로 처리해야합니다 (명령을 역 인용하면됩니다) :

puts "Migrating database..." 
`rake db:migrate`