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

时间:2010-05-19 14:26:13

标签: perl sql-server-2000 dbix-class

我正在尝试使用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成功运行查询。

4 个答案:

答案 0 :(得分:3)

尝试添加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}])

答案 1 :(得分:2)

我发现如果架构加载中存在任何错误,make_schema_at将中止而不会写任何内容。确保您诊断出输出的任何错误,然后重试。

在我的情况下,我有debug => 1 set,然后输出到它正在做的事情,但这意味着你不能轻易地看到所有输出中是否有任何错误。尝试设置debug => 0以检查实际错误。

答案 2 :(得分:0)

我预感.\lib不正确。请使用./liblib再次尝试。

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

答案 3 :(得分:0)

尝试从Navision数据库中提取模式(1200个表!)时遇到了同样的问题。我最后只使用" -o约束"对于我想要的桌子。