【发布时间】:2015-08-18 21:06:16
【问题描述】:
完全缺乏文档使这变得困难..
基本上,我有
package MyApp::Schema;
sub new_schema {
__PACKAGE__->connect(...)
}
那我有
package MyCatApp::Model::MyApp;
use Moose;
extends 'Catalyst::Model::DBIC::Schema';
## what here;
_PACKAGE__->make_immutable;
我该如何进行这项工作?如果我的配置中有这个...
<Model::MyApp>
schema_class MyApp::Schema
traits Caching
user_defined_schema_accessor foo
</Model::MyApp>
我收到following error:
BEGIN 失败--编译在 MyCatapp.psgi 第 4 行第 1 行中止。 加载 MyCatapp.psgi 时出错:无法实例化组件“必须为 MyCatApp::Model::MyApp 或 MyApp::Schema 定义任何 ->config->{connect_info} 必须在其上定义连接信息。
但是在MyApp::Schema 中添加sub connect_info {} 不会改变任何东西。该错误是在line 480 of this file 上生成的。
该方法似乎正在查看$schema_class->storage->connect_info,我认为它是实例化对象上的方法,而不是包中的函数。但是,如果我尝试设置
__PACKAGE__->config('schema_class', MyApp::Schema->new_schema)
然后我得到...
加载时出错:无法实例化组件“MyCatApp::Model::MyApp”,“属性(schema_class)未通过类型约束,因为:'Catalyst::Model::DBIC::Schema: 验证失败: :Types::SchemaClass' 值 MyApp::Schema=HASH(0xb4a5ff0) 在 /usr/local/lib/perl/5.18.2/Moose/Exception.pm 第 37 行
那么,我该怎么做呢……
【问题讨论】:
标签: perl catalyst dbix-class