2010-05-19 78 views
1

我想在Perl中使用DBIx::Class來生成靜態模式。下面顯示的命令輸出一個Schema.pm並沒有其他文件。任何想法我做錯了,或如何調試呢?爲什麼不是DBIx :: Class :: Schema :: Loader創建我的類?

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連接訪問。我可以使用普通的舊的DBI以及相同的ODBC連接成功運行查詢。

+0

我手寫了模式類。這似乎工作。從SQL Server中獲取表定義一定有一些問題。 – 2010-05-24 13:48:11

回答

0

我有一種預感,.\lib是不正確的。請用./liblib重試。

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

感謝您的建議。我嘗試了* lib *和*。/ lib *。他們有相同的結果 - 空Schema.pm和表沒有模塊。 – 2010-05-20 13:55:39

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}]) 
+0

需要upvote這一個,因爲它解決了我的問題類似的問題。 – jchips12 2012-05-17 04:34:52

2

我發現,如果在所有有模式中的裝載任何錯誤,make_schema_at將中止而不是寫任何東西。確保您診斷輸出的錯誤,然後重試。

就我而言,我有調試=> 1套,然後輸出到終端它在做什麼,但它意味着你不能輕易看是否有在所有該輸出任何錯誤。嘗試設置debug => 0來檢查實際錯誤。

0

我不得不試圖從一個數據庫Navision的架構(1200桌!)同樣的問題。我結束了對我想要的表格使用「-o約束」。

相關問題