Человек, это раздражает. Похоже, невозможно получить то, что вы хотите, как есть.
_build_loader_components
в Catalyst :: Helper :: Model :: DBIC :: Schema добавляет его, если у вас нет пространств имен и пространства имен набора результатов. Это выдвигает ваш дополнительный component=
список на это.
my @components = $self->old_schema && (not $use_namespaces) ? ()
: ('InflateColumn::DateTime');
Итак, варианты -
- Подать ошибку .
- Сделайте это с dbicdump .
Это должно быть то, что вы хотели -
dbicdump -o dump_directory=./lib \
-o components='["EncodedColumn"]' \
-o use_namespaces=1 \
-o overwrite_modifications=1 \
MyApp::Schema dbi:mysql:foo user pass
А потом просто простая модель, чтобы обернуть его -
script/myapp_create.pl model DB DBIC::Schema MyApp::Schema
Обновление: взято preserve_case
, так как ваш пример не использовал его, и я хотел бы упомянуть в целях передовой практики, что пароль не должен быть в модели или классах схемы. Он должен быть в конфигурации, и если вы используете что-то, что позволяет это, например mysql, он должен быть настроен на чтение из файла конфигурации конкретной БД с ограниченными правами.