2012-04-16 27 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

这就是为什么你应该使用相同的数据库进行开发和生产的确切原因。当你开始使用自己的SQL时,你会遇到这样的问题。 – 2012-04-16 10:55:18

+0

是的,学习困难的方式!我甚至没有信服/设置使用Heroku ....它似乎是最简单和最快捷的解决方案,除此之外! – Raoot 2012-04-16 10:57:57

+0

你总是可以在heroku https://addons.heroku.com/cleardb上使用mySQL,所以你不必担心Postgres的问题。 – 2012-04-16 11:28:19

回答

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