我正在尝试使用DBIx :: Class :: Schema :: Loader为Catalyst创建模型。我希望结果类有一个我可以添加方法的基类。所以MyTable.pm继承自Base.pm,它继承自DBIx :: Class :: core(默认)。
不知何故,我无法弄清楚如何做到这一点。我的创建脚本在下面,谁能告诉我我做错了什么?该脚本创建我的模型确定,但所有结果集类只是直接从DBIx :: Class :: core继承而没有我的Base类。
#!/usr/bin/perl
use DBIx::Class::Schema::Loader qw/ make_schema_at /;
#specifically for the entities many-2-many relation
$ENV{DBIC_OVERWRITE_HELPER_METHODS_OK} = 1;
make_schema_at(
'MyApp::Schema',
{
dump_directory => '/tmp',
debug => 1,
overwrite_modifications => 1,
components => ['EncodedColumn'], #encoded password column
use_namespaces => 1,
default_resultset_class => 'Base'
},
[ 'DBI:mysql:database=mydb;host=localhost;port=3306','rob', '******' ],
);
答案 0 :(得分:2)
看起来您只想添加result_base_class
(可能会删除default_resultset_class
) -
env DBIC_OVERWRITE_HELPER_METHODS_OK=1 \
dbicdump \
-o result_base_class="FullNameOf::Base" \
-o debug=1 \
-o dump_directory=./tmp \
-o components='["EncodedColumn"]' \
-o use_namespaces=1 \
-o overwrite_modifications=1 \
"DBI:mysql:database=mydb;host=localhost;port=3306" \
rob "******"
更新,相关文档:DBIx::Class::Schema::Loader::Base#result_base_class。