DBIx :: Class基础结果类

时间:2011-03-20 08:10:50

标签: mysql perl catalyst dbix-class

我正在尝试使用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', '******' ],
);

1 个答案:

答案 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