如何使用DBIx::Class::Schema::Loader从现有的MySQL数据库创建模式?

如何使用DBIx::Class::Schema::Loader从现有的MySQL数据库创建模式?,class,schema,loader,Class,Schema,Loader,我试图使用DBIx::Class::Schema::Loader从现有的MySQL数据库创建模式。我使用了make_schema_at方法,如下所示: 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', 'roo

我试图使用DBIx::Class::Schema::Loader从现有的MySQL数据库创建模式。我使用了make_schema_at方法,如下所示:

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\"
要使用DBI而不是DBIx::Class连接到MySQL数据库,我使用:

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文件夹中为新模式创建新文件夹吗?

10个月后,我意识到,我无意中发现了这一搜索。您的通话模式是错误的

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

您正在传入一个ArrayRef,其中make_schema_at需要一个HashRef

试一试

C:\xampp\perl\bin>perl -MDBIx::Class::Schema::Loader=make_Schema_at,dump_to_dir:。\lib-e make_Schema_at'turboimmisft::Schema',{debug=>1}, ['dbi:mysql:dbname=turboimmsoft','root',]