# First, with in-memory classes
my $schema_class = $self->setup_schema(@connect_info);
$self->test_schema($schema_class);
- $self->drop_tables;
}
# defined in sub create
foreach my $source_name ($schema_class->sources) {
my $table_name = $schema_class->source($source_name)->from;
+ $table_name = $$table_name if ref $table_name;
+
$monikers->{$table_name} = $source_name;
$classes->{$table_name} = $schema_class . q{::} . $source_name;
is( $rsobj1->loader_test1_rsmeth, 'all is still well', 'Result set method' );
}
- ok( $class1->column_info('id')->{is_auto_increment}, 'is_auto_incrment detection' );
+ ok( $class1->column_info('id')->{is_auto_increment}, 'is_auto_increment detection' );
my $obj = $rsobj1->find(1);
is( $obj->id, 1, "Find got the right row" );
sub dbconnect {
my ($self, $complain) = @_;
- my $dbh = DBI->connect(
- $self->{dsn}, $self->{user},
- $self->{password},
- {
- RaiseError => $complain,
- PrintError => $complain,
- AutoCommit => 1,
- }
- );
+ require DBIx::Class::Storage::DBI;
+ my $storage = DBIx::Class::Storage::DBI->new;
+
+ $complain = defined $complain ? $complain : 1;
+
+ $storage->connect_info([
+ @{ $self }{qw/dsn user password/},
+ {
+ unsafe => 1,
+ RaiseError => $complain,
+ ShowErrorStatement => $complain,
+ PrintError => 0,
+ },
+ ]);
+
+ my $dbh = eval { $storage->dbh };
+ die "Failed to connect to database: $@" if !$dbh;
- die "Failed to connect to database: $DBI::errstr" if !$dbh;
+ $self->{storage} = $storage; # storage DESTROY disconnects
return $dbh;
}