2012-04-16 4 views
0

私はMySQLで開発中で、Postgresを使用しているHerokuにデプロイしました。私のクエリの中には、Postgresで作業するために書き換えが必要なものがあるようです。下のような問題で私のグループの修正を手伝ってくれますか?Postgres/Rails - Herokuのデプロイメントに関するグループ

Herokuのログのエラー:私のコントローラから

ActiveRecord::StatementInvalid (PGError: ERROR: column "itunes_data.artist_show" must appear in the GROUP BY clause or be used in an aggregate function 

def itunes_top_tracks 
@itunes_top_tracks = ItunesData.all(:select => "artist_show, title, label_studio_network, isrc, SUM(units) as unitsum", :group => :isrc, :order => "unitsum DESC", :limit => 10) 
end 

私は問題が何であるかを理解し、私はストレートSQLでこれを行うだろう方法を知って、私はよく分かりませんRailsの方法の?

おかげで、すべての

+2

これは、開発用に同じDBを使用する必要がある正確な理由です。独自のSQLを使い始めると、このような問題に遭遇します。 –

+0

ええ、難しい方法を学ぶ!私はHerokuを使用して確信/設定していません....それはちょうどこれとは別に、最も簡単で簡単な解決策のようです! – Raoot

+0

あなたはいつもheroku https://addons.heroku.com/cleardbでmySQLを使うことができるので、Postgresの問題を心配する必要はありません。 –

答えて

1
def itunes_top_tracks 
@itunes_top_tracks = ItunesData.all(:select => "artist_show, title, label_studio_network, isrc, SUM(units) as unitsum", 
    :group => [:artist_show, :title, :label_studio_network, :isrc], :order => "unitsum DESC", :limit => 10) 
end 
0

はこの質問を見てみましょう - PostgreSQL - GROUP BY clause or be used in an aggregate functionそれはPostgresの中で、グループBYSを使用するための答えに方向性を提供します。

または、Heroku用のmySQLアドオンの使用を検討し、Postgresの使用を心配しないでください。

関連する問題