gpt4 book ai didi

Perl DBI 连接有效但不适用于 Catalyst

转载 作者:行者123 更新时间:2023-12-05 02:22:55 26 4
gpt4 key购买 nike

我正在使用 Perl,我可以使用以下命令连接到本地 PostgreSQL 9.3 服务器这段代码

#!/usr/bin/perl
use DBI;
use strict;
my $dbh = DBI->connect("dbi:Pg:dbname=postgres;host=127.0.0.1;port=5432", "postgres", "postgres", { RaiseError => 1 }) or die $DBI::errstr;
$dbh->disconnect();
print "Done\n";

现在,跟随 Catalyst documentation about PostgreSQL我尝试生成 Catalyst 模型。

我使用这个shell命令

script/myapp_create.pl model DB DBIC::Schema MyApp::Schema \
create=static components=TimeStamp,EncodedColumn \
'dbi:Pg:dbname=postgres,host=127.0.0.1,port=5432' 'postgres' 'postgres' '{ AutoCommit => 1 }'

但是我得到以下错误:

DBIx::Class::Storage::DBI::catch {...} (): 
DBI Connection failed:
DBI connect('dbname=postgres,host=127.0.0.1,port=5432','postgres',...) failed:
FATAL: database "postgres,host=127.0.0.1,port=5432" does not exist at
/usr/local/share/perl/5.18.2/DBIx/Class/Storage/DBI.pm line 1487. at
/usr/local/share/perl/5.18.2/Catalyst/Helper/Model/DBIC/Schema.pm line 637

最佳答案

您的第一个 DBI 连接测试使用分号“;”正确配置了连接字符串- 你的第二个使用逗号 ',' - 这不是有效的属性分隔符。

改变自;

'dbi:Pg:dbname=postgres,host=127.0.0.1,port=5432'...

到;

'dbi:Pg:dbname=postgres;host=127.0.0.1;port=5432'...

关于Perl DBI 连接有效但不适用于 Catalyst,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26619424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com