2

DBIx::Class::Schema::Loader を使用して Catalyst のモデルを作成しようとしています。結果クラスには、メソッドを追加できる基本クラスが必要です。そのため、MyTable.pm は、DBIx::Class::core (デフォルト) を継承する Base.pm を継承します。

どういうわけか、これを行う方法がわかりません。私の作成スクリプトは以下にあります。誰かが私が間違っていることを教えてもらえますか? スクリプトはモデルを正常に作成しますが、すべての結果セット クラスは 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', '******' ],
);
4

1 に答える 1

3

単に追加したいだけのようですresult_base_class(おそらく を削除しますdefault_resultset_class)–</p>

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

于 2011-03-20T16:08:47.857 に答える