0

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

这是错误。

[错误] DBIx::Class::ResultSet::search(): No such relationship Committee_members on Committee at /mnt/data/www/apps/org/script/../lib/org/Controller/Users.pm line 57 [调试] 响应码:500;内容类型:文本/html;字符集=utf-8;内容长度:204782

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

任何帮助表示赞赏。

4

1 回答 1

1

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

原始版本的催化剂和相关模块可以正常使用代码(使用旧时代的关系/表命名法),但一些模块(不是全部)在此过程中进行了更新,破坏了上述模块的向后兼容性。当它也被更新时,会报告警告并自动解析关系名称(我仍然需要查看详细信息..)。

它能够解决中间版本中遗漏的一些向后兼容性问题。见 http://metacpan.org/pod/DBIx::Class::Schema::Loader::Manual::UpgradingFromV4

于 2012-09-18T16:53:51.117 回答