2012-01-05 10 views
0

SCENARIO:私は私の地元の発展のためにシナトラ+シナトラ/アクティブレコード+ SQLite3のを使用してい
。私は、HerokuにPostgresqlを使用するようにプッシュするとわかっています。私は積極的な記録を使っているのでうれしいです。問題はありません。シナトラ/ ActiveRecordの+ Herokuの発生エラー

APP.RBファイル

require 'rubygems' 
require 'sinatra' 
require 'sinatra/activerecord' 
require 'open-uri' 
require 'uri' 
require 'nokogiri' 

configure :development do 
    set :database, 'sqlite://development.db' 
end 

configure :test do 
    set :database, 'sqlite://test.db' 
end 

configure :production do 
    db = URI.parse(ENV['DATABASE_URL'] || 'postgres://localhost/mydb') 

    ActiveRecord::Base.establish_connection(
    :adapter => db.scheme == 'postgres' ? 'postgresql' : db.scheme, 
    :host  => db.host, 
    :username => db.user, 
    :password => db.password, 
    :database => db.path[1..-1], 
    :encoding => 'utf8' 
) 
end 

class Picture < ActiveRecord::Base 

end 

get '/' do 
    @test = Picture.find(:all) 
    erb :index 
end 

エラー
私は、私は次のエラーを取得するheroku rake db:migrateを試してみてください...

DEBUG -- : NoMethodError: undefined method `values' for #<PGresult:0x00000002b24d08>: SHOW client_min_messages 

DEBUG -- : PGError: ERROR: invalid value for parameter "client_min_messages": "" 

は、それから私は大丈夫、私はよ心配を考えません私のローカルsqlite3 development.dbからheroku production dbにデータをプッシュするこのheroku機能を試してみてください。だから私は heroku push:db sqlite://development.db成功をしたデータはである。私は、アプリを再起動し、さらにコミットをプッシュしますが、私はActiveRecordのを行うには何もアクセスすることはできません

。もし私がPicture.find(:all)の基本的な質問をすれば、私は同じDEBUGエラーになります。

私のconfigure :productionは私を台無しにしていますか? 推奨事項はありますか?

+2

「私は、アクティブなレコードを使用していると私は何の問題もないはずです。」あなたは明らかに英雄の質問を読んでいません。 PostgreSQLをインストールして開発する方がずっと良いです。 –

+0

私はこれをしなければならないように聞こえ始めます。別のSQL言語を学ぶことを望んでいない。 – alenm

+0

SQLはSQLです。しかし、SQLiteはSQLではありません。 (そして、MySQLもどちらでもない。) –

答えて

1

何らかの形で、構成パラメータclient_min_messagesを空の文字列に設定することができます。

マニュアルはhereに通知:

有効な値は、あなたが設定することができDEBUG5、DEBUG4、DEBUG3、DEBUG2、DEBUG1、LOG、NOTICE、 WARNING、ERROR、FATAL、およびPANIC

ですpostgresql.confでこのパラメータまたはを使用して、セッション内の任意の時間:

SET client_min_messages = WARNING; 

はデフォルトにリセットするにはpostgresql.confで定義されている:

RESET client_min_messages; 
+0

ええ、私は実際にそれをどのようにしたのか分かりません。私のアプリケーションが、自分の設定に基づいてHerokuのプロダクションDBと話しているのかどうかは分かりませんでした。 – alenm

関連する問題