我正在尝试使用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成功运行查询。
答案 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
不正确。请使用./lib
或lib
再次尝试。
> perl -e'print ".\lib"' | hex
0000 2e 69 62 .ib
答案 3 :(得分:0)
尝试从Navision数据库中提取模式(1200个表!)时遇到了同样的问题。我最后只使用" -o约束"对于我想要的桌子。