2013-08-01 46 views
1

我想使用DBIx :: Class :: Schema :: Loader從現有的MySQL數據庫創建模式。我用make_schema_at方法是這樣的:如何使用DBIx :: Class :: Schema :: Loader從現有的MySQL數據庫創建模式?

C:\xampp\perl\bin>perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:.\lib -e "make_schema_at('turboimmisoft::Schema', ['dbi::mysql::dbname=turboimmisoft', 'root', ''])" 

其中:turboimmisoft是我的數據庫的名稱

,我得到了以下錯誤消息:

Reference found where even-sized list expected at C:/xampp/perl/site/lib/DBIx/Class/Schema/Loader.pm line 165. 
DBIx::Class::Storage::DBI::_connect(): You did not provide any connection_info at -e line 1 
[download] 
I am using ActivePerl 5.14.4 on Windows Vista and the path the the MySQL database is: "C:\xampp\mysql\data\". The path to perl.exe is: "C:\xampp\perl\bin\" 

要連接到MySQL數據庫與DBI (不是DBIx :: Class),我用:

use DBI; 
my $driver = "mysql"; 
my $database = "turboimmisoft"; 
my $dsn = "DBI:$driver:database=$database"; 
my $userid = "root"; 
my $password = ""; 
my $dbh = DBI->connect($dsn, $userid, $password) #, {RaiseError => 1 
+, AutoCommit => 1} 
      or die "Could not connect to database:$DBI::errstr"; 

任何幫助將不勝感激。我是DBIx :: Class的新手,但自2007年以來我一直在使用DBI。

是否必須在DBIx :: Class文件夾中爲新模式創建新文件夾?

回答

0

我意識到10個月後,偶然發現了其他的東西。您的make_schema_at呼叫是錯誤的。

make_schema_at($schema, \%loader_options, [$dsn, $user, $pass]); 

make_schema_at文檔

你傳遞一個數組引用其中make_schema_at期待一個HashRef。

嘗試

C:\ XAMPP \ perl的\ BIN> perl的 -MDBIx ::類::架構::裝載機= make_schema_at,dump_to_dir:\ lib中-e「make_schema_at('turboimmisoft :: Schema',{debug => 1}, ['dbi:mysql:dbname = turboimmisoft','root',''])「

相關問題