我在新服务器上复制了 Perl Catalyst Web 应用程序,确保 Catalyst、MySQL 和所有必需的 Perl 模块在两台服务器上具有相同的版本。但当我尝试登录一台服务器时,我不断收到奇怪的 DBIx 错误消息。
这是错误。
[error] 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 [debug] Response Code: 500; Content-Type: text/html; charset=utf-8; Content-Length: 204782
该关系明确存在于数据库中。还有其他人遇到过这个问题吗?
感谢任何帮助。
最佳答案
这就是问题所在 - 模块 DBIx::Class::Schema::Loader 不是最新的。
原始版本的催化剂和相关模块与代码一起工作得很好(使用旧时代的关系/表命名法),但一些模块(不是全部)在过程中进行了更新,破坏了上述模块的向后兼容性。当它也更新时,会报告警告并自动解析关系名称(我仍然需要查看详细信息..)。
它能够解决中间版本中遗漏的一些向后兼容性问题。 看 http://metacpan.org/pod/DBIx::Class::Schema::Loader::Manual::UpgradingFromV4
关于mysql - 为什么我在 Perl Catalyst 的两个克隆实例之一上收到 DBIx "No such relationship"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12465489/