dbix :: class为非催化剂应用程序生成模式

时间:2012-08-21 02:51:45

标签: perl schema catalyst dbix-class

我最近一直在构建Catalyst应用程序,我喜欢的一件事是使用Catalyst的创建脚本轻松生成DBIx::Class的表模式。我希望能够使用DBIX :: Class而无需手动为我的表编写模式。有没有办法这样做而不用手工做?谢谢!

3 个答案:

答案 0 :(得分:5)

DBIx::Class::Schema::Loaderdbicdump脚本可用于转储架构。文档中的一个例子:

dbicdump -o dump_directory=./lib \
         -o components='["InflateColumn::DateTime"]' \
         -o debug=1 \
         My::Schema \
         'dbi:Pg:dbname=foo' \
         myuser \
         mypassword

答案 1 :(得分:0)

支持它的另一个更通用的模块是SQL::Translator

答案 2 :(得分:0)

#!/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