我在新服务器上复制了Perl催化剂Web应用程序,以确保催化剂,MySQL和所有必需的Perl模块在两个服务器上都具有相同的版本。但是,当我尝试在一台服务器上登录时,我总是收到奇怪的DBIx错误消息。

这是错误。


  [错误] DBIx :: Class :: ResultSet :: search():没有此类关系
  委员会_委员会成员
  /mnt/data/www/apps/org/script/../lib/org/Controller/Users.pm第57行
  [调试]响应代码:500;内容类型:text / html; charset = utf-8;
  内容长度:204782


该关系显然存在于数据库中。其他人遇到过这个问题吗?

任何帮助表示赞赏。

最佳答案

这就是问题所在-模块DBIx :: Class :: Schema :: Loader不是最新的。

原始版本的催化剂和相关模块可以按原样使用代码(具有以前的关系/表命名法),但是某些模块(并非全部)在打破上述模块的向后兼容性的方式下进行了更新。当更新时,也会报告警告并自动解析关系名称(我仍然需要查看详细信息。)。

它能够解决中间版本中未包含的一些向后兼容问题。
看到
http://metacpan.org/pod/DBIx::Class::Schema::Loader::Manual::UpgradingFromV4

关于mysql - 为什么在perl Catalyst的两个克隆实例之一上出现DBIx“无此类关系”错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12465489/

10-10 13:30