J’ai du mal à déployer mon application Rails sur Heroku, où cette erreur est générée lors de la tentative d’access à l’application:
PGError: ERREUR: la relation “organisations” n’existe pas (ActiveRecord :: StatementInvalid)
SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull FROM pg_atsortingbute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attrelid = '"organizations"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
Quelqu’un a des idées? C’est une première pour moi, notamment parce que je travaille avec Heroku depuis un an sur d’autres applications et que je n’ai rien vu de tel. Bien sûr, tout fonctionne sur SQLite local.
J’ai eu le même problème. Pour le résoudre, il est plus facile de réinitialiser la firebase database.
Ensuite, la migration a été effectuée avec succès pour mon cas 🙂
Selon mon expérience (Rails 3.1, Sedar stack) après avoir exécuté pg:reset
et db:migrate
vous devrez peut-être exécuter heroku restart
.
J’ai eu le même problème jusqu’à ce que je réalise que je devais faire:
heroku rake db:migrate
🙂
Ma version heroku:
heroku --version #=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3
Pour le réparer, ouvrez simplement votre terminal et lancez:
heroku pg:reset DATABASE --confirm YOUR_APP_NAME heroku run rake db:setup heroku restart heroku open
Dans mon cas, je devais aussi détruire et recréer mon application. J’avais exécuté un rake db: migrer avec un fichier de migration non validé et pour une raison quelconque, le pg: reset ne fonctionnait pas.
Utilisez-vous un outil? J’ai eu ce problème précis lors de la mise à niveau vers la version 2.0 – Vous devez modifier manuellement le fichier de migration.
https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0-migration-schema-style
Supprimant apparemment toute mon application et redéployant à partir de zéro, elle a été corrigée. Je n’ai aucune idée du problème.
Dans mon cas, les symptômes étaient les mêmes, mais la cause première et le remède étaient quelque peu différents. J’ai passé des heures là-dessus. J’espère que cet article sauvera quelqu’un d’autre ces heures! J’utilise:
Tout se passe bien localement sur SQLite, mais obtenez la même erreur PG sur Heroku. Il s’avère qu’ActiveScaffold empêche en quelque sorte le programme Heroku d’exécuter avec succès des tâches de râteau en raison d’une erreur similaire à celle décrite ci-dessus. Donc, vous obtenez un cache 22 où vous obtenez la même erreur si vous essayez d’exécuter heroku rake db: migrer ou similaire.
Maintenant le correctif:
Commentez les blocs de code similaires à ceux de tous les contrôleurs qui utilisent “active_scaffold”:
active_scaffold : do |conf| end
heroku run rake db:migrate
heroku run rails console
, puis en créant un modèle et en l’enregistrant. active_scaffold
maintenant les modifications (par exemple, ramenez le bloc active_scaffold
ci-dessus) Je garde ma configuration locale aussi proche de la production que possible, y compris en utilisant une firebase database postgresql, donc j’ai eu ce problème sur mon ordinateur local. Je ne peux de toute façon pas supprimer ma firebase database de production. Il s’est avéré que mon problème était seulement en test, donc j’ai utilisé: rake db: test: préparez-vous à le réparer.
rake db:drop rake db:create rake db:migrate
J’ai eu un problème similaire et a couru heroku run rake db:reset
et heroku run rake db:migrate
pour résoudre le problème. Je suppose que je n’avais pas effectué les migrations appropriées pour résoudre le problème.
Plusieurs raisons peuvent expliquer cette erreur. Pour mon application, cependant, le problème était que je ne m’étais pas déconnecté de l’application avant d’exécuter la migration (?). Donc, aller sur ce chemin: http://name_of_my_app.herokuapp.com/logout
résolu le problème pour moi.
Après des heures à sortinger les réponses, je me suis rendu compte que lorsque vous spécifiez
rails new MYAPP -database POSTGRESQL
Il modifie le fichier .gitignore en ignorant le /db/ directory
entier /db/ directory
, de sorte que ma firebase database ne soit jamais transmise à heroku. Supprimez-le avec précaution ou, au moins, ne disposez pas de votre nom d’utilisateur et de votre mot de passe à cet endroit.