From: Brandon Black Date: Wed, 15 Nov 2006 14:30:06 +0000 (+0000) Subject: Merge 'trunk' into 'current' X-Git-Tag: 0.03999_01~22 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=01e4fb4111b655790b5cf352af86f9f63406c6bf;hp=01de241846c050c0e1c89163331c9c08c08acd7b;p=dbsrgits%2FDBIx-Class-Schema-Loader.git Merge 'trunk' into 'current' r11853@moloko (orig r2888): blblack | 2006-11-15 08:29:23 -0600 commit the version bump + Changes update for 0.03009 --- diff --git a/Build.PL b/Build.PL index 801579c..e66c1c8 100644 --- a/Build.PL +++ b/Build.PL @@ -9,10 +9,9 @@ my %arguments = ( 'Scalar::Util' => 0, 'Data::Dump' => 1.06, 'UNIVERSAL::require' => 0.10, - 'Lingua::EN::Inflect' => 1.89, 'Lingua::EN::Inflect::Number' => 1.1, 'Text::Balanced' => 0, - 'Class::Accessor' => 0.22, + 'Class::Accessor' => 0.27, 'Class::Data::Accessor' => 0.02, 'Class::C3' => 0.11, 'Carp::Clan' => 0, diff --git a/Changes b/Changes index d47866c..01666c1 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,11 @@ Revision history for Perl extension DBIx::Class::Schema::Loader + - columns_info_for imported from DBIx::Class + - relationships are now on by default, use skip_relationships + to disable them + - Removed previously deprecated methods/options + - Added $VERSION to all packages in this dist + 0.03009 Wed Nov 15 14:03:37 UTC 2006 - fix for rt.cpan.org #22425 (use File::Spec where appropriate) - use full instead of short classnames in relationships (from victori) diff --git a/lib/DBIx/Class/Schema/Loader.pm b/lib/DBIx/Class/Schema/Loader.pm index 03a8cce..bbc8fd3 100644 --- a/lib/DBIx/Class/Schema/Loader.pm +++ b/lib/DBIx/Class/Schema/Loader.pm @@ -12,11 +12,11 @@ use Scalar::Util qw/ weaken /; # Always remember to do all digits for the version even if they're 0 # i.e. first release of 0.XX *must* be 0.XX000. This avoids fBSD ports # brain damage and presumably various other packaging systems too -our $VERSION = '0.03009'; +our $VERSION = '0.03999_01'; __PACKAGE__->mk_classaccessor('dump_to_dir'); -__PACKAGE__->mk_classaccessor('loader'); -__PACKAGE__->mk_classaccessor('_loader_args'); +__PACKAGE__->mk_classaccessor('_loader_args' => {}); +__PACKAGE__->mk_classaccessor('_loader_invoked'); =head1 NAME @@ -28,7 +28,6 @@ DBIx::Class::Schema::Loader - Dynamic definition of a DBIx::Class::Schema use base qw/DBIx::Class::Schema::Loader/; __PACKAGE__->loader_options( - relationships => 1, constraint => '^foo.*', # debug => 1, ); @@ -66,9 +65,8 @@ than to be what you use in the long term for a complex database/project. That being said, transitioning your code from a Schema generated by this module to one that doesn't use this module should be straightforward and -painless (as long as you're not using any methods that are now deprecated -in this document), so don't shy away from it just for fears of the -transition down the road. +painless, so don't shy away from it just for fears of the transition down +the road. =head1 METHODS @@ -79,17 +77,10 @@ detailed information on all of the arguments, most of which are only useful in fairly complex scenarios, see the L documentation. -This method is *required* at this time, for backwards compatibility -reasons. If you do not wish to change any options, just call it -with an empty argument list during schema class initialization. - -Setting these options explicitly via this method B calling -C is deprecated and will stop working in version 0.04000. -For now the code merely warns about this condition. - -The preferred way of doing things is to either call C -before any connection is made, or embed the C in -the connection information itself as shown below. +One must call C before any connection is made, +or embed the C in the connection information itself +as shown below. Setting C after the connection has +already been made is useless. =cut @@ -97,18 +88,7 @@ sub loader_options { my $self = shift; my %args = (ref $_[0] eq 'HASH') ? %{$_[0]} : @_; - - my $class = ref $self || $self; - $args{schema} = $self; - $args{schema_class} = $class; - weaken($args{schema}) if ref $self; - $self->_loader_args(\%args); - if($self->storage && !$class->loader) { - warn "Do not set loader_options after specifying the connection info," - . " this will be unsupported in 0.04000"; - $self->_invoke_loader; - } $self; } @@ -117,7 +97,13 @@ sub _invoke_loader { my $self = shift; my $class = ref $self || $self; - $self->_loader_args->{dump_directory} ||= $self->dump_to_dir; + my $args = $self->_loader_args; + + # set up the schema/schema_class arguments + $args->{schema} = $self; + $args->{schema_class} = $class; + weaken($args->{schema}) if ref $self; + $args->{dump_directory} ||= $self->dump_to_dir; # XXX this only works for relative storage_type, like ::DBI ... my $impl = "DBIx::Class::Schema::Loader" . $self->storage_type; @@ -125,10 +111,8 @@ sub _invoke_loader { croak qq/Could not load storage_type loader "$impl": / . qq/"$UNIVERSAL::require::ERROR"/; - # XXX in the future when we get rid of ->loader, the next two - # lines can be replaced by "$impl->new(%{$self->_loader_args})->load;" - $class->loader($impl->new(%{$self->_loader_args})); - $class->loader->load; + $impl->new(%$args)->load; + $self->_loader_invoked(1); $self; } @@ -159,7 +143,7 @@ sub connection { $self = $self->next::method(@_); my $class = ref $self || $self; - if($self->_loader_args && !$class->loader) { + if(!$class->_loader_invoked) { $self->_invoke_loader } @@ -270,19 +254,19 @@ illustrated in these Examples: use DBIx::Class::Schema::Loader qw/ make_schema_at /; make_schema_at( 'New::Schema::Name', - { relationships => 1, debug => 1 }, + { debug => 1 }, [ 'dbi:Pg:dbname="foo"','postgres' ], ); # Complex: dump loaded schema to disk, all from the commandline: - perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at("New::Schema::Name", { relationships => 1 }, [ "dbi:Pg:dbname=foo","postgres" ])' + perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at("New::Schema::Name", { debug => 1 }, [ "dbi:Pg:dbname=foo","postgres" ])' # Same, but inside a script, and using a different way to specify the # dump directory: use DBIx::Class::Schema::Loader qw/ make_schema_at /; make_schema_at( 'New::Schema::Name', - { relationships => 1, debug => 1, dump_directory => './lib' }, + { debug => 1, dump_directory => './lib' }, [ 'dbi:Pg:dbname="foo"','postgres' ], ); @@ -310,7 +294,6 @@ replace the DB::Main with the following code: use base qw/DBIx::Class::Schema::Loader/; __PACKAGE__->loader_options( - relationships => 1, debug => 1, ); __PACKAGE__->connection('dbi:SQLite:example.db'); @@ -320,89 +303,6 @@ replace the DB::Main with the following code: and remove the Main directory tree (optional). Every thing else should work the same -=head1 DEPRECATED METHODS - -You don't need to read anything in this section unless you're upgrading -code that was written against pre-0.03 versions of this module. This -version is intended to be backwards-compatible with pre-0.03 code, but -will issue warnings about your usage of deprecated features/methods. - -B, -and converting code that uses these methods should be trivial. - -=head2 load_from_connection - -This deprecated method is now roughly an alias for L. - -For now, using this method will invoke the legacy behavior for -backwards compatibility, and merely emit a warning about upgrading -your code. - -It also reverts the default inflection scheme to -use L just like pre-0.03 versions of this -module did. - -You can force these legacy inflections with the -option L, -even after switch over to the preferred L way of doing -things. That option will not go away until at least 0.05. - -See the source of this method for more details. - -=cut - -sub load_from_connection { - my ($self, %args) = @_; - - my $cmds_ver = $Catalyst::Model::DBIC::Schema::VERSION; - if($cmds_ver) { - if($cmds_ver < 0.14) { - warn 'You should upgrade your installation of' - . ' Catalyst::Model::DBIC::Schema to 0.14 or higher, then:'; - } - warn 'You should regenerate your Model files, which may eliminate' - . ' the following deprecation warning:'; - } - warn 'load_from_connection deprecated, and will dissappear in 0.04000, ' - . 'please [re-]read the [new] DBIx::Class::Schema::Loader ' - . 'documentation'; - - # Support the old connect_info / dsn / etc args... - $args{connect_info} = [ - delete $args{dsn}, - delete $args{user}, - delete $args{password}, - delete $args{options}, - ] if $args{dsn}; - - $self->connection(@{delete $args{connect_info}}) - if $args{connect_info}; - - $self->loader_options('legacy_default_inflections' => 1, %args); -} - -=head2 loader - -This is an accessor in the generated Schema class for accessing -the L -based loader object -that was used during construction. See the -L docs for more information -on the available loader methods there. - -This accessor is deprecated. Do not use it. Anything you can -get from C, you can get via the normal L -methods, and your code will be more robust and forward-thinking -for doing so. - -If you're already using C in your code, make an effort -to get rid of it. If you think you've found a situation where it -is necessary, let me know and we'll see what we can do to remedy -that situation. - -In some future version, this accessor *will* disappear. It was -apparently quite a design/API mistake to ever have exposed it to -user-land in the first place, all things considered. - =head1 KNOWN ISSUES =head2 Multiple Database Schemas diff --git a/lib/DBIx/Class/Schema/Loader/Base.pm b/lib/DBIx/Class/Schema/Loader/Base.pm index 6b89a29..3bb81a0 100644 --- a/lib/DBIx/Class/Schema/Loader/Base.pm +++ b/lib/DBIx/Class/Schema/Loader/Base.pm @@ -12,6 +12,8 @@ use POSIX qw//; use File::Spec qw//; require DBIx::Class; +our $VERSION = '0.03999_01'; + __PACKAGE__->mk_ro_accessors(qw/ schema schema_class @@ -23,7 +25,7 @@ __PACKAGE__->mk_ro_accessors(qw/ left_base_classes components resultset_components - relationships + skip_relationships moniker_map inflect_singular inflect_plural @@ -31,8 +33,6 @@ __PACKAGE__->mk_ro_accessors(qw/ dump_directory dump_overwrite - legacy_default_inflections - db_schema _tables classes @@ -57,9 +57,10 @@ classes, and implements the common functionality between them. These constructor options are the base options for L. Available constructor options are: -=head2 relationships +=head2 skip_relationships -Try to automatically detect/setup has_a and has_many relationships. +Skip setting up relationships. The default is to attempt the loading +of relationships. =head2 debug @@ -137,19 +138,6 @@ classes. A good example would be C. Component C will be automatically added to the above C list if this option is set. -=head2 legacy_default_inflections - -Setting this option changes the default fallback for L to -utilize L, and L to a no-op. -Those choices produce substandard results, but might be necessary to support -your existing code if you started developing on a version prior to 0.03 and -don't wish to go around updating all your relationship names to the new -defaults. - -This option will continue to be supported until at least version 0.05xxx, -but may dissappear sometime thereafter. It is recommended that you update -your code to use the newer-style inflections when you have the time. - =head2 dump_directory This option is designed to be a tool to help you transition from this @@ -180,25 +168,6 @@ If set to a true value, the dumping code will overwrite existing files. The default is false, which means the dumping code will skip the already existing files. -=head1 DEPRECATED CONSTRUCTOR OPTIONS - -B - -=head2 inflect_map - -Equivalent to L. - -=head2 inflect - -Equivalent to L. - -=head2 connect_info, dsn, user, password, options - -You connect these schemas the same way you would any L, -which is by calling either C or C on a schema class -or object. These options are only supported via the deprecated -C interface, which is also being removed in 0.04000. - =head1 METHODS None of these methods are intended for direct invocation by regular @@ -247,14 +216,6 @@ sub new { $self->{monikers} = {}; $self->{classes} = {}; - # Support deprecated arguments - for(qw/inflect_map inflect/) { - warn "Argument $_ is deprecated in favor of 'inflect_plural'" - . ", and will be removed in 0.04000" - if $self->{$_}; - } - $self->{inflect_plural} ||= $self->{inflect_map} || $self->{inflect}; - $self->{schema_class} ||= ( ref $self->{schema} || $self->{schema} ); $self->{schema} ||= $self->{schema_class}; @@ -318,7 +279,7 @@ sub load { my $self = shift; $self->_load_classes; - $self->_load_relationships if $self->relationships; + $self->_load_relationships if ! $self->skip_relationships; $self->_load_external; $self->_dump_to_dir if $self->dump_directory; @@ -497,7 +458,7 @@ sub _load_classes { my $cols = $self->_table_columns($table); my $col_info; - eval { $col_info = $schema->storage->columns_info_for($table) }; + eval { $col_info = $self->_columns_info_for($table) }; if($@) { $self->_dbic_stmt($table_class,'add_columns',@$cols); } diff --git a/lib/DBIx/Class/Schema/Loader/DBI.pm b/lib/DBIx/Class/Schema/Loader/DBI.pm index 943c34f..3c19ca5 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI.pm @@ -2,11 +2,13 @@ package DBIx::Class::Schema::Loader::DBI; use strict; use warnings; -use base qw/DBIx::Class::Schema::Loader::Base Class::Accessor::Fast/; +use base qw/DBIx::Class::Schema::Loader::Base/; use Class::C3; use Carp::Clan qw/^DBIx::Class/; use UNIVERSAL::require; +our $VERSION = '0.03999_01'; + =head1 NAME DBIx::Class::Schema::Loader::DBI - DBIx::Class::Schema::Loader DBI Implementation. @@ -81,6 +83,20 @@ sub _tables_list { return @tables; } +=head2 load + +We override L here to hook in our localized settings for C<$dbh> error handling. + +=cut + +sub load { + my $self = shift; + + local $self->schema->storage->dbh->{RaiseError} = 1; + local $self->schema->storage->dbh->{PrintError} = 0; + $self->next::method(@_); +} + # Returns an arrayref of column names sub _table_columns { my ($self, $table) = @_; @@ -151,6 +167,63 @@ sub _table_fk_info { return \@rels; } +# ported in from DBIx::Class::Storage::DBI: +sub _columns_info_for { + my ($self, $table) = @_; + + my $dbh = $self->schema->storage->dbh; + + if ($dbh->can('column_info')) { + my %result; + eval { + my $sth = $dbh->column_info( undef, $self->db_schema, $table, '%' ); + $sth->execute(); + while ( my $info = $sth->fetchrow_hashref() ){ + my %column_info; + $column_info{data_type} = $info->{TYPE_NAME}; + $column_info{size} = $info->{COLUMN_SIZE}; + $column_info{is_nullable} = $info->{NULLABLE} ? 1 : 0; + $column_info{default_value} = $info->{COLUMN_DEF}; + my $col_name = $info->{COLUMN_NAME}; + $col_name =~ s/^\"(.*)\"$/$1/; + + $result{$col_name} = \%column_info; + } + }; + return \%result if !$@ && scalar keys %result; + } + + if($self->db_schema) { + $table = $self->db_schema . $self->{_namesep} . $table; + } + my %result; + my $sth = $dbh->prepare("SELECT * FROM $table WHERE 1=0"); + $sth->execute; + my @columns = @{$sth->{NAME_lc}}; + for my $i ( 0 .. $#columns ){ + my %column_info; + my $type_num = $sth->{TYPE}->[$i]; + my $type_name; + if(defined $type_num && $dbh->can('type_info')) { + my $type_info = $dbh->type_info($type_num); + $type_name = $type_info->{TYPE_NAME} if $type_info; + } + $column_info{data_type} = $type_name ? $type_name : $type_num; + $column_info{size} = $sth->{PRECISION}->[$i]; + $column_info{is_nullable} = $sth->{NULLABLE}->[$i] ? 1 : 0; + + if ($column_info{data_type} =~ m/^(.*?)\((.*?)\)$/) { + $column_info{data_type} = $1; + $column_info{size} = $2; + } + + $result{$columns[$i]} = \%column_info; + } + + return \%result; +} + + =head1 SEE ALSO L diff --git a/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm b/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm index e600ee2..f029457 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm @@ -6,6 +6,8 @@ use base 'DBIx::Class::Schema::Loader::DBI'; use Carp::Clan qw/^DBIx::Class/; use Class::C3; +our $VERSION = '0.03999_01'; + =head1 NAME DBIx::Class::Schema::Loader::DBI::DB2 - DBIx::Class::Schema::Loader::DBI DB2 Implementation. @@ -15,10 +17,7 @@ DBIx::Class::Schema::Loader::DBI::DB2 - DBIx::Class::Schema::Loader::DBI DB2 Imp package My::Schema; use base qw/DBIx::Class::Schema::Loader/; - __PACKAGE__->loader_options( - relationships => 1, - db_schema => "MYSCHEMA", - ); + __PACKAGE__->loader_options( db_schema => "MYSCHEMA" ); 1; diff --git a/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm b/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm index 66b2745..5f4ae7c 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm @@ -6,6 +6,8 @@ use base 'DBIx::Class::Schema::Loader::DBI'; use Carp::Clan qw/^DBIx::Class/; use Class::C3; +our $VERSION = '0.03999_01'; + =head1 NAME DBIx::Class::Schema::Loader::DBI::Pg - DBIx::Class::Schema::Loader::DBI @@ -16,9 +18,7 @@ PostgreSQL Implementation. package My::Schema; use base qw/DBIx::Class::Schema::Loader/; - __PACKAGE__->loader_options( - relationships => 1, - ); + __PACKAGE__->loader_options( debug => 1 ); 1; diff --git a/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm b/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm index 8ca2d66..2bba30f 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm @@ -7,6 +7,8 @@ use Carp::Clan qw/^DBIx::Class/; use Text::Balanced qw( extract_bracketed ); use Class::C3; +our $VERSION = '0.03999_01'; + =head1 NAME DBIx::Class::Schema::Loader::DBI::SQLite - DBIx::Class::Schema::Loader::DBI SQLite Implementation. @@ -16,7 +18,7 @@ DBIx::Class::Schema::Loader::DBI::SQLite - DBIx::Class::Schema::Loader::DBI SQLi package My::Schema; use base qw/DBIx::Class::Schema::Loader/; - __PACKAGE__->loader_optoins( relationships => 1 ); + __PACKAGE__->loader_options( debug => 1 ); 1; diff --git a/lib/DBIx/Class/Schema/Loader/DBI/Writing.pm b/lib/DBIx/Class/Schema/Loader/DBI/Writing.pm index 9837fd2..23b9ef3 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/Writing.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/Writing.pm @@ -1,6 +1,8 @@ package DBIx::Class::Schema::Loader::DBI::Writing; use strict; +our $VERSION = '0.03999_01'; + # Empty. POD only. 1; diff --git a/lib/DBIx/Class/Schema/Loader/DBI/mysql.pm b/lib/DBIx/Class/Schema/Loader/DBI/mysql.pm index 7d4afca..0ff0151 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/mysql.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/mysql.pm @@ -6,6 +6,8 @@ use base 'DBIx::Class::Schema::Loader::DBI'; use Carp::Clan qw/^DBIx::Class/; use Class::C3; +our $VERSION = '0.03999_01'; + =head1 NAME DBIx::Class::Schema::Loader::DBI::mysql - DBIx::Class::Schema::Loader::DBI mysql Implementation. @@ -15,9 +17,7 @@ DBIx::Class::Schema::Loader::DBI::mysql - DBIx::Class::Schema::Loader::DBI mysql package My::Schema; use base qw/DBIx::Class::Schema::Loader/; - __PACKAGE__->load_from_connection( - relationships => 1, - ); + __PACKAGE__->loader_options( debug => 1 ); 1; diff --git a/lib/DBIx/Class/Schema/Loader/RelBuilder.pm b/lib/DBIx/Class/Schema/Loader/RelBuilder.pm index 9b61371..5ccb769 100644 --- a/lib/DBIx/Class/Schema/Loader/RelBuilder.pm +++ b/lib/DBIx/Class/Schema/Loader/RelBuilder.pm @@ -3,9 +3,10 @@ package DBIx::Class::Schema::Loader::RelBuilder; use strict; use warnings; use Carp::Clan qw/^DBIx::Class/; -use Lingua::EN::Inflect (); use Lingua::EN::Inflect::Number (); +our $VERSION = '0.03999_01'; + =head1 NAME DBIx::Class::Schema::Loader::RelBuilder - Builds relationships for DBIx::Class::Schema::Loader @@ -102,9 +103,7 @@ sub _inflect_plural { return $inflected if $inflected; } - return $self->{legacy_default_inflections} - ? Lingua::EN::Inflect::PL($relname) - : Lingua::EN::Inflect::Number::to_PL($relname); + return Lingua::EN::Inflect::Number::to_PL($relname); } # Singularize a relationship name @@ -120,9 +119,7 @@ sub _inflect_singular { return $inflected if $inflected; } - return $self->{legacy_default_inflections} - ? $relname - : Lingua::EN::Inflect::Number::to_S($relname); + return Lingua::EN::Inflect::Number::to_S($relname); } sub generate_code { diff --git a/t/20invocations.t b/t/20invocations.t index 49d16af..fdab791 100644 --- a/t/20invocations.t +++ b/t/20invocations.t @@ -3,8 +3,6 @@ use Test::More; use lib qw(t/lib); use make_dbictest_db; -$SIG{__WARN__} = sub { }; # Suppress warnings, as we test a lot of deprecated stuff here - # Takes a $schema as input, runs 4 basic tests sub test_schema { my ($testname, $schema) = @_; @@ -23,49 +21,16 @@ sub test_schema { } my @invocations = ( - 'deprecated_one' => sub { - package DBICTest::Schema::1; - use base qw/ DBIx::Class::Schema::Loader /; - __PACKAGE__->connection($make_dbictest_db::dsn); - __PACKAGE__->load_from_connection( relationships => 1 ); - __PACKAGE__; - }, - 'deprecated_two' => sub { - package DBICTest::Schema::2; - use base qw/ DBIx::Class::Schema::Loader /; - __PACKAGE__->load_from_connection( - relationships => 1, - connect_info => [ $make_dbictest_db::dsn ], - ); - __PACKAGE__; - }, - 'deprecated_three' => sub { - package DBICTest::Schema::3; - use base qw/ DBIx::Class::Schema::Loader /; - __PACKAGE__->load_from_connection( - relationships => 1, - dsn => $make_dbictest_db::dsn, - ); - __PACKAGE__; - }, - 'deprecated_four' => sub { - package DBICTest::Schema::4; - use base qw/ DBIx::Class::Schema::Loader /; - __PACKAGE__->connection($make_dbictest_db::dsn); - __PACKAGE__->loader_options( relationships => 1 ); - __PACKAGE__; - }, 'hardcode' => sub { package DBICTest::Schema::5; use base qw/ DBIx::Class::Schema::Loader /; - __PACKAGE__->loader_options( relationships => 1 ); __PACKAGE__->connection($make_dbictest_db::dsn); __PACKAGE__; }, 'normal' => sub { package DBICTest::Schema::6; use base qw/ DBIx::Class::Schema::Loader /; - __PACKAGE__->loader_options( relationships => 1 ); + __PACKAGE__->loader_options(); __PACKAGE__->connect($make_dbictest_db::dsn); }, 'make_schema_at' => sub { diff --git a/t/22dump.t b/t/22dump.t index 47106a9..ba5eda3 100644 --- a/t/22dump.t +++ b/t/22dump.t @@ -32,7 +32,7 @@ rmtree($dump_path, 1, 1); eval { DBICTest::Schema::1->connect($make_dbictest_db::dsn) }; ok(!$@, 'no death with dump_directory set') or diag "Dump failed: $@"; -DBICTest::Schema::1->loader(undef); +DBICTest::Schema::1->_loader_invoked(undef); SKIP: { skip "ActiveState perl produces additional warnings", 5 @@ -58,7 +58,7 @@ eval { DBICTest::Schema::2->connect($make_dbictest_db::dsn) }; ok(!$@, 'no death with dump_directory set (overwrite1)') or diag "Dump failed: $@"; -DBICTest::Schema::2->loader(undef); +DBICTest::Schema::2->_loader_invoked(undef); eval { DBICTest::Schema::2->connect($make_dbictest_db::dsn) }; ok(!$@, 'no death with dump_directory set (overwrite2)') or diag "Dump failed: $@"; diff --git a/t/lib/dbixcsl_common_tests.pm b/t/lib/dbixcsl_common_tests.pm index aa32df0..99a2d13 100644 --- a/t/lib/dbixcsl_common_tests.pm +++ b/t/lib/dbixcsl_common_tests.pm @@ -100,8 +100,13 @@ sub run_tests { } my $conn = $schema_class->clone; - my $monikers = $schema_class->loader->monikers; - my $classes = $schema_class->loader->classes; + my $monikers = {}; + my $classes = {}; + foreach my $source_name ($schema_class->sources) { + my $table_name = $schema_class->source($source_name)->from; + $monikers->{$table_name} = $source_name; + $classes->{$table_name} = $schema_class . q{::} . $source_name; + } my $moniker1 = $monikers->{loader_test1}; my $class1 = $classes->{loader_test1};