2010-12-04 13 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.rurequire '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

をチェックしてください
関連する問題