2010-12-04 3 views
0

Sinatra를 기반으로하는 앱이 있습니다. rakefile은 다음과 같이 보입니다.Heroku에서 Sinatra 컨텍스트로 작업 수행

require 'rubygems' 
require 'rake' 
require 'rake/clean' 
require 'rake/gempackagetask' 
require 'rake/rdoctask' 
require 'rake/testtask' 
require File.dirname(__FILE__) + '/lib/config.rb' 
require File.dirname(__FILE__) + '/lib/autoloads.rb' 

@db = Mongo::Connection.from_uri(settings.db_uri).db(settings.db_uri[Regexp.new('[^/]*$')]) 
@cache = MemCache.new(settings.cache_server) 

제 개발 컴퓨터에서 잘 작동합니다. 이제 문제는 Heroku에 배포 한 후 settings 개체가 정의되지 않게되므로 모든 작업이 실패합니다. 이 문제를 해결하는 방법을 알고 있습니까?

답변

1

설정이 정의 된 파일이로드되지 않는 것 같습니다. config.ru에서 require 'my_sinatra_app'require './my_sinatra_app'으로 변경하십시오. 또한 see this question.

0

sinatra 응용 프로그램을 빌드 할 때 동일한 문제가 발생했습니다. 일부 레이크 작업을 실행하여 db 설치 작업을 수행하려고합니다.

나는 결국 데이터베이스 연결 설정, 연결 및 스키마 작업을 별도의 클래스로 추상화했습니다. 이 클래스는 sinatra 앱과 Rakefile에서 액세스 할 수 있습니다.

내 rakefile은 여기에 있습니다 : 거기에서 https://github.com/brighterplanet/status/blob/master/Rakefile#L6 가, lib 디렉토리/bp_status/db.rb

체크 아웃
관련 문제