Heroku Postgres Erreur: PGError: ERREUR: la relation “organisations” n'existe pas (ActiveRecord::StatementInvalid)
Je vais avoir un problème de déploiement de mon application Rails de Heroku, où cette erreur est renvoyée lorsque vous essayez d'accéder à 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_attribute 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, surtout parce que je travaille avec Heroku pour un an sur les autres applications, et n'ai pas vu quelque chose comme ça. Bien sûr, tout fonctionne sur locale SQLite.
- Les organisations de la table ne semble pas exister. avez-vous votre migration?
- Merci @shreyas, oui, la migration a été exécuté, et c'est la sortie: == CreateOrganizations: migration ============================================ -- create_table (les organisations) -> de 0,0175 s -- add_index(:organisations, [:organization_type], {:nom=>"organizations_index"}) -> 0.0054 s == CreateOrganizations: migrés (0.0238 s) ===================================
- Aussi, lorsque je me connecte sur la console et la case: >> ActiveRecord::Base.connexion.tables => ["schema_migrations", "emploi", "organisations", etc...
- Maintenant que vous avez vos organisations de la table créée, êtes-vous toujours face à un problème?
- Oui, les organisations de la table a déjà été créé lorsque le problème est survenu, merci...
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. Pour résoudre ce problème, la réinitialisation de la base de données est plus facile.
Ensuite, la migration a été fait avec succès pour mon cas 🙂
Alors que c'est une bonne solution dans ce contexte, ne pas le faire sur la production. Il va supprimer tous les enregistrements de votre base de données
heroku run rake db:reset
heroku run rake db:migrate
Puisheroku restart
et il doit être fixé.rake db:drop
et puisrake db:create
aussiJ'ai eu le même problème jusqu'à ce que j'ai réalisé que j'avais à faire:
🙂
Selon mon expérience (Rails 3.1, le site de Sedar pile) après l'exécution de
pg:reset
etdb:migrate
vous pourriez avoir à exécuterheroku restart
.Mon heroku version:
Pour régler ce problème il suffit d'ouvrir votre terminal et exécutez:
Dans mon cas, j'ai également eu à détruire et recréer mon application. J'avais couru un rake db:migrate avec un fichier de migration pas commis et pour quelque raison que ce soit, le pg:reset ne fonctionne pas.
Utilisez-vous élaborer? J'ai eu exactement ce problème lors de la mise à 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
Apparemment, la suppression de la totalité de mon application et redéploiement à partir de zéro, il fixe. Je n'ai aucune idée de ce qu'était le problème.
Dans mon cas, les symptômes étaient les mêmes, mais la cause et le remède s'est avéré quelque peu différente. Passé des heures sur ce. J'espère que ce post va sauver quelqu'un d'autre de ces horaires!
Je suis à l'aide de:
Tout fonctionne bien en local sur SQLite, mais obtenir le même PG erreur sur Heroku. S'avère que ActiveScaffold en quelque sorte empêche Heroku pousser avec succès l'exécution de tâches rake en raison d'une erreur similaire à ci-dessus. Ainsi, vous obtenez un cache 22 où vous recevez le même message d'erreur si vous essayez d'exécuter heroku rake db:migrate ou similaire.
Maintenant la solution:
Commentaire de blocs de code similaire à la suite de tous contrôleurs qui utilisent "active_scaffold":
heroku run rake db:migrate
heroku run rails console
et puis dire la création d'un modèle et l'enregistrer.active_scaffold
bloc ci-dessus)- Je garder mon installation locale en tant que proche de production que possible, y compris à l'aide d'une base de données postgresql, donc j'ai eu ce problème sur ma machine locale. Je ne peux pas supprimer ma base de données de production de toute façon. Il s'est avéré que mon problème était uniquement dans le test, j'ai donc utilisé: rake db:test:se préparer pour le fixer.
J'ai eu un problème similaire et a couru
heroku run rake db:reset
etheroku run rake db:migrate
pour résoudre le problème. Je suppose que je n'avais simplement pas exécuter le bon migrations pour résoudre le problème.Il peut y avoir plusieurs raisons à cette erreur. Pour mon application, cependant, le problème était que je n'avais pas déconnecté de l'application avant j'ai couru à la migration (?). Alors va sur ce chemin:
http://name_of_my_app.herokuapp.com/logout
correction d'un problème pour moi.
Après des heures de tamisage à travers réponse, j'ai réalisé que lorsque vous spécifiez
il change de la .gitignore fichier, en ignorant l'ensemble de la
/db/directory
, donc ma base de données n'a jamais été d'obtenir poussé jusqu'à heroku. Enlever avec précaution, ou au moins de ne pas avoir votre nom d'utilisateur et le mot de passe là où vous poussez vers le haut.