2012-04-16 4 views
0

Je développe MySQL et je l'ai déployé sur Heroku qui utilise Postgres. Il semble que certaines de mes requêtes devront être réécrites pour fonctionner avec Postgres. Quelqu'un peut-il aider à résoudre mon groupe par des questions telles que ci-dessous s'il vous plaît?Postgres/Rails - Grouper par problèmes sur le déploiement de Heroku

Heroku erreur Connexion:

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

De mon contrôleur:

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 

Je comprends ce que le problème et savoir comment je ferais ceci dans SQL droite, je ne suis pas sûr de la façon Rails?

Merci à tous

+2

C'est la raison pour laquelle vous devriez utiliser le même DB pour le développement que pour la production. Lorsque vous commencez à utiliser votre propre SQL, vous allez rencontrer des problèmes comme celui-ci. –

+0

Oui, apprendre à la dure !! Je ne suis même pas convaincu/mis en utilisant Heroku .... il semble juste la solution la plus simple et la plus rapide, en dehors de cela! – Raoot

+0

vous pouvez toujours utiliser mySQL sur heroku https://addons.heroku.com/cleardb afin de ne pas avoir à vous soucier des problèmes de Postgres. –

Répondre

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 
Questions connexes