提问人:Eugen Konkov 提问时间:4/20/2021 更新时间:4/20/2021 访问量:64
如何通过DBIx::Class add_column复合类型的表?
How to add_column for table with composite type via DBIx::Class?
问:
https://www.postgresql.org/docs/current/rowtypes.html#ROWTYPES-DECLARING
每当创建表时,也会自动创建一个与表同名的复合类型
因此,如果数据库服务器返回了这种复合类型(我使用的是PostgreSQL)。 我应该如何声明我的专栏?
package App::Schema::Result::Example;
use utf8;
use Modern::Perl;
use parent 'App::Schema::Result';
my $X = __PACKAGE__;
$X->table_class('DBIx::Class::ResultSource::View');
$X->table('example');
$X->result_source_instance->is_virtual(1);
$X->result_source_instance->view_definition( <<'SQL' );
select t from my_table t; -- NOTICE: I return row as composite type
SQL
$X->add_columns(
t => {
data_type => '????',
},
);
如果我已经有,我可以写:或者?my_table
App::Schema::Result::Table
data_type => my_table
data_type => App::Schema::Result::Table
万一我不能。如何解释如何从列中提取数据?DBIx::Class
t
答:
0赞
Eugen Konkov
4/20/2021
#1
我找到了一个如何完成此操作的线程:https://groups.google.com/g/perl.dbd.pg/c/roY9y-Tq198?pli=1
所以我们有拖曳方式:
- 使用 PGObject perl 模块
- 使用
InflateColumn
功能
评论