我有DBIx :: Class :: Schema的问题,我创建了db然后是表:User,Post,....然后我在终端
中完成了这个dbicdump -o dump_directory=./lib App::Schema 'dbi:mysql:my_db:localhost:3306' root password
命令使lib :: App :: Schema与Schema.pm一起使用,并在其中包含Result路径。 (使用表类)。
这是由Schema.pm
生成的use utf8;
package App::Schema;
use strict;
use warnings;
use base 'DBIx::Class::Schema';
__PACKAGE__->load_namespaces;
1;
我使用架构:
use lib::App::Schema;
my $schema = App::Schema->connect("dbi:mysql:dbname=my_db", "root", "password");
my @m = $schema->resultset('User')->all;
在此文件中出现错误
DBIx::Class::Schema::source(): Can't find source for User at lib/Local/ThisFile.pm line 26
答案 0 :(得分:0)
让我们假设您要为数据库的模式创建包Habr::Schema
。您可以使用命令
dbicdump -o dump_directory=./lib Habr::Schema 'dbi:mysql:my_db:localhost:3306' root password
此后您可以使用此
访问该模块use lib './lib';
use Habr::Schema;
虽然您必须小心use lib
中的相对路径,但最好使用绝对路径,以便您可以从任何工作目录运行代码
您的完整程序可能如下所示。它打印id
表
User
列
use strict;
use warnings 'all';
use feature 'say';
use Habr::Schema;
my $schema = App::Schema->connect(qw/ dbi:mysql:dbname=my_db root password /);
for my $user ( $schema->resultset('User')->all ) {
say $user->id;
}