2012-09-17 2 views
0

J'ai répliqué une application Web de catalyseur Perl sur un nouveau serveur, en m'assurant que le catalyseur, MySQL et tous les modules Perl requis ont les mêmes versions sur les deux serveurs. Mais je continue à recevoir un étrange message d'erreur DBIx lorsque j'essaie de me connecter sur un serveur.Pourquoi est-ce que j'obtiens l'erreur DBIx "No such relationship" sur l'une des deux instances clone de perl Catalyst?

Ceci est l'erreur.

[error] DBIx :: Class :: :: ResultSet recherche(): Aucun rapport committee_members le Comité à /mnt/data/www/apps/org/script/../lib/org /Controller/Users.pm ligne 57 [debug] Code de réponse: 500; Content-Type: texte/html; jeu de caractères = utf-8; Longueur du contenu: 204782

La relation existe clairement dans la base de données. Est-ce que quelqu'un d'autre a eu ce problème?

Toute aide est appréciée.

+2

Il existe dans la base de données, existe-t-il dans votre code DBIx :: Class? – friedo

+0

Il ne s'agit pas de quelque chose dans la base de données, mais d'une relation définie dans votre projet. – ikegami

Répondre

1

C'était le problème - le module DBIx :: Class :: Schema :: Loader n'était pas à jour. La version originale du catalyseur et des modules associés fonctionnait bien avec le code tel qu'il était (avec la nomenclature de relation/table d'autrefois) mais certains modules, pas tous, ont été mis à jour au cours de la rétrocompatibilité du module ci-dessus. Quand cela a été mis à jour aussi, les avertissements ont été rapportés et les noms des relations ont été automatiquement résolus (j'ai encore besoin de voir les détails ..).

Il a été capable de résoudre certains problèmes de compatibilité arrière qui étaient restés en dehors de la version intermédiaire. voir http://metacpan.org/pod/DBIx::Class::Schema::Loader::Manual::UpgradingFromV4

Questions connexes