我是数据库和DBIx的新手:Class.如果这是一个完全新手的错误,请原谅我.
我只是按照教程,然后我尝试将架构部署到我的数据库.根据教程我将模块分成几个文件.在我运行createTable.pl之后’
mysqlshow bla’向我展示了一个空数据库.
数据库已启动并正在运行.通过mysql CREATE TABLE语句创建表确实有效.
Skript文件应该根据模式创建一个表../createTable.pl
#!/usr/bin/env perl
use Modern::Perl;
use MyDatabase::Main;
my ($database, $user) = ('bla', 'flo');
my $schema = MyDatabase::Main->connect("dbi:mysql:dbname=$database", "$user");
$schema->deploy( { auto_drop_tables => 1 } );
Main.pm用于加载命名空间../MyDatabase/Main.pm
package MyDatabase::Main;
use base qw/ DBIx::Class::Schema /;
__PACKAGE__->load_namespaces();
1;
表格的模式文件../MyDatabase/Result/Album.pm
package MyDatabase::Main::Result::Album;
use base qw/ DBIx::Class::Core /;
__PACKAGE__->load_components(qw/ Ordered /);
__PACKAGE__->position_column('rank');
__PACKAGE__->table('album');
__PACKAGE__->add_columns(albumid =>
{ accessor => 'album',
data_type => 'integer',
size => 16,
is_nullable => 0,
is_auto_increment => 1,
},
artist =>
{ data_type => 'integer',
size => 16,
is_nullable => 0,
},
title =>
{ data_type => 'varchar',
size => 256,
is_nullable => 0,
},
rank =>
{ data_type => 'integer',
size => 16,
is_nullable => 0,
default_value => 0,
}
);
__PACKAGE__->set_primary_key('albumid');
1;
我已经花了几个小时通过谷歌寻求帮助,但与deploy()方法没有多大关系.
谁能解释一下我的错误是什么?
谢谢
最佳答案 您可以在metacpan.org(更新,全文索引)和search.cpan.org上找到所有CPAN Perl模块的文档.
阅读DBI的文档,你会发现一个名为DBI_TRACE的环境变量,它在设置时会将每个SQL语句打印到STDOUT.
DBIx :: Class有一个类似的名为DBIC_TRACE.
第一个应该可以帮助您查看部署方法正在执行的操作.
连接数据库不需要密码吗?