繁体   English   中英

为什么DBIx :: Class :: Schema :: Loader不创建我的类?

[英]Why isn't DBIx::Class::Schema::Loader creating my classes?

我正在尝试在Perl中使用DBIx :: Class生成静态模式。 下面显示的命令输出Schema.pm ,不输出其他文件。 知道我做错了什么,或者如何调试呢?

U:\wohlfarj\Software\PARS>perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:.\lib 
-e "make_schema_at('PARS::Schema',{debug=>1},['dbi:ODBC:PARS','user','password',{AutoCommit=>0}])"
Dumping manual schema for PARS::Schema to directory .\lib ...
Schema dump completed.

我在Windows XP上使用Strawberry Perl 该数据库是SQL Server 2000,可通过ODBC连接访问。 我可以使用具有相同ODBC连接的普通旧DBI成功运行查询。

尝试添加db_schema =>“ dbo”和odbc_exec_direct => 1,如下所示:

perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:.\lib -e "make_schema_at('PARS::Schema',{debug=>1, db_schema => "dbo"},['dbi:ODBC:PARS','user','password',{AutoCommit=>0, odbc_exec_direct => 1}])

我发现,如果在架构加载中根本没有任何错误,make_schema_at将中止并且根本不写入任何内容。 确保诊断出它输出的任何错误,然后重试。

在我的情况下,我设置了debug => 1,然后将其执行的操作输出到终端,但这意味着您不容易看到所有输出中是否有任何错误。 尝试设置debug => 0来检查实际错误。

我预感.\\lib是不正确的。 使用./lib或仅使用lib再试一次。

> perl -e'print ".\lib"' | hex
0000  2e 69 62                                          .ib

尝试从Navision数据库提取模式(1200个表!)时,我遇到了同样的问题。 我最终只对想要的表使用了“ -o约束”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM