【发布时间】:2012-08-21 02:51:44
【问题描述】:
我最近一直在构建 Catalyst 应用程序,我喜欢的一件事是使用 Catalyst 的创建脚本轻松地为 DBIx::Class 生成表模式。我希望能够使用 DBIX::Class 而不必手动为我的表编写模式。有没有办法做到这一点而不用手做?谢谢!
【问题讨论】:
标签: perl schema catalyst dbix-class
我最近一直在构建 Catalyst 应用程序,我喜欢的一件事是使用 Catalyst 的创建脚本轻松地为 DBIx::Class 生成表模式。我希望能够使用 DBIX::Class 而不必手动为我的表编写模式。有没有办法做到这一点而不用手做?谢谢!
【问题讨论】:
标签: perl schema catalyst dbix-class
DBIx::Class::Schema::Loader 的dbicdump 脚本可用于转储模式。文档中的一个示例:
dbicdump -o dump_directory=./lib \
-o components='["InflateColumn::DateTime"]' \
-o debug=1 \
My::Schema \
'dbi:Pg:dbname=foo' \
myuser \
mypassword
【讨论】:
另一个更通用的模块是SQL::Translator。
【讨论】:
#!/usr/bin/env perl
use Modern::Perl;
use DBIx::Class::Schema::Loader 'make_schema_at';
my $DEBUG = @ARGV and $ARGV[0] =~ /^\-[\-]*v/;
say $DBIx::Class::Schema::Loader::VERSION if $DEBUG;
my @dsn = 'dbi:Pg:dbname=yourDB.db';
my $options = {
debug => $DEBUG,
dump_directory => 'lib',
components => [qw/ InflateColumn::DateTime /],
generate_pod => 0,
};
make_schema_at(Schema => $options, \@dsn);
=head1 NAME
generate_dbic_schema
=head1 USAGE
perl generate_dbic_schema
=cut
【讨论】: