... | ... |
@@ -1126,11 +1126,16 @@ sub setup_model { |
1126 | 1126 |
sub { |
1127 | 1127 |
my ($self, $table, $column, $column_info) = @_; |
1128 | 1128 |
my $schema = $column_info->{TABLE_SCHEM}; |
1129 |
- return if exists $opt{schema} && $opt{schema} ne $schema; |
|
1130 | 1129 |
|
1131 |
- $table = "$schema.$table" if exists $opt{prefix}; |
|
1130 |
+ my $default_schema = $self->default_schema; |
|
1131 |
+ |
|
1132 | 1132 |
if (my $model = $self->models->{$table}) { |
1133 |
- push @{$model->columns}, $column; |
|
1133 |
+ if (!defined $default_schema || $default_schema eq $schema) { |
|
1134 |
+ push @{$model->columns}, $column; |
|
1135 |
+ } |
|
1136 |
+ } |
|
1137 |
+ if (my $fullqualified_model = $self->models->{"$schema.$table"}) { |
|
1138 |
+ push @{$fullqualified_model->columns}, $column; |
|
1134 | 1139 |
} |
1135 | 1140 |
} |
1136 | 1141 |
); |
... | ... |
@@ -1218,7 +1223,7 @@ sub type_rule { |
1218 | 1223 |
|
1219 | 1224 |
my $schema = $column_info->{TABLE_SCHEM}; |
1220 | 1225 |
my $default_schema = $self->default_schema; |
1221 |
- if (!defined $default_schema || (defined $default_schema && $default_schema eq $schema)) { |
|
1226 |
+ if (!defined $default_schema || $default_schema eq $schema) { |
|
1222 | 1227 |
$self->{"_$into"}{key}{$table}{$column} = $filter; |
1223 | 1228 |
$self->{"_$into"}{dot}{"$table.$column"} = $filter; |
1224 | 1229 |
} |
... | ... |
@@ -3431,17 +3436,10 @@ See also L<DBIx::Custom::Where> to know how to create where clause. |
3431 | 3436 |
=head2 C<setup_model> |
3432 | 3437 |
|
3433 | 3438 |
$dbi->setup_model; |
3434 |
- $dbi->setup_model(schema => 'main'); |
|
3435 |
- $dbi->setup_model(schema => 'main', prefix => 1); |
|
3436 | 3439 |
|
3437 | 3440 |
Setup all model objects. |
3438 | 3441 |
C<columns> of model object is automatically set, parsing database information. |
3439 | 3442 |
|
3440 |
-If C<database> option is specified, only the database is searched. |
|
3441 |
- |
|
3442 |
-If C<prefix> option is specified, Target model is qualified by dabtabase name |
|
3443 |
-like C<main.book>. |
|
3444 |
- |
|
3445 | 3443 |
=head2 C<type_rule> |
3446 | 3444 |
|
3447 | 3445 |
$dbi->type_rule( |
... | ... |
@@ -43,7 +43,7 @@ use DBIx::Custom; |
43 | 43 |
has key8 => $key8; |
44 | 44 |
has key9 => $key9; |
45 | 45 |
has key10 => $key10; |
46 |
- has setup_model_args => sub { [database => 'dbix_custom', prefix => 1] }; |
|
46 |
+ has default_schema => 'dbix_custom'; |
|
47 | 47 |
|
48 | 48 |
my $date_typename = 'Date'; |
49 | 49 |
my $datetime_typename = 'Datetime'; |
... | ... |
@@ -39,7 +39,6 @@ use DBIx::Custom; |
39 | 39 |
has key8 => $key8; |
40 | 40 |
has key9 => $key9; |
41 | 41 |
has key10 => $key10; |
42 |
- has setup_model_args => sub { [database => 'main', prefix => 1] }; |
|
43 | 42 |
|
44 | 43 |
my $date_typename = 'Date'; |
45 | 44 |
my $datetime_typename = 'Datetime'; |
... | ... |
@@ -39,6 +39,7 @@ use DBIx::Custom; |
39 | 39 |
has key8 => $key8; |
40 | 40 |
has key9 => $key9; |
41 | 41 |
has key10 => $key10; |
42 |
+ has default_schema => 'main'; |
|
42 | 43 |
|
43 | 44 |
my $date_typename = 'Date'; |
44 | 45 |
my $datetime_typename = 'Datetime'; |
... | ... |
@@ -75,7 +75,6 @@ my $date_typename = $dbi->date_typename; |
75 | 75 |
my $datetime_typename = $dbi->datetime_typename; |
76 | 76 |
my $date_datatype = $dbi->date_datatype; |
77 | 77 |
my $datetime_datatype = $dbi->datetime_datatype; |
78 |
-my $setup_model_args = $dbi->can('setup_model_args') ? $dbi->setup_model_args : []; |
|
79 | 78 |
|
80 | 79 |
# Variables |
81 | 80 |
my $builder; |
... | ... |
@@ -2565,7 +2564,7 @@ eval { $dbi->execute("drop table $table2") }; |
2565 | 2564 |
$dbi->execute($create_table1); |
2566 | 2565 |
$dbi->execute($create_table2); |
2567 | 2566 |
$dbi->separator('__'); |
2568 |
-$dbi->setup_model(@$setup_model_args); |
|
2567 |
+$dbi->setup_model; |
|
2569 | 2568 |
$dbi->insert({$key1 => 1, $key2 => 2}, table => $table1); |
2570 | 2569 |
$dbi->insert({$key1 => 1, $key3 => 3}, table => $table2); |
2571 | 2570 |
$model = $dbi->model($table1); |
... | ... |
@@ -2608,7 +2607,7 @@ eval { $dbi->execute("drop table $table1") }; |
2608 | 2607 |
eval { $dbi->execute("drop table $table2") }; |
2609 | 2608 |
$dbi->execute($create_table1); |
2610 | 2609 |
$dbi->execute($create_table2); |
2611 |
-$dbi->setup_model(@$setup_model_args); |
|
2610 |
+$dbi->setup_model; |
|
2612 | 2611 |
$dbi->insert({$key1 => 1, $key2 => 2}, table => $table1); |
2613 | 2612 |
$dbi->insert({$key1 => 1, $key3 => 3}, table => $table2); |
2614 | 2613 |
$model = $dbi->model($table1); |
... | ... |
@@ -3067,7 +3066,7 @@ eval { $dbi->execute("drop table $table1") }; |
3067 | 3066 |
eval { $dbi->execute("drop table $table2") }; |
3068 | 3067 |
$dbi->execute($create_table1); |
3069 | 3068 |
$dbi->execute($create_table2); |
3070 |
-$dbi->setup_model(@$setup_model_args); |
|
3069 |
+$dbi->setup_model; |
|
3071 | 3070 |
$dbi->insert({$key1 => 1, $key2 => 2}, table => $table1); |
3072 | 3071 |
$dbi->insert({$key1 => 1, $key3 => 3}, table => $table2); |
3073 | 3072 |
$model = $dbi->model($table1); |
... | ... |
@@ -3103,7 +3102,7 @@ $dbi->create_model( |
3103 | 3102 |
$model2 = $dbi->create_model( |
3104 | 3103 |
table => $table2, |
3105 | 3104 |
); |
3106 |
-$dbi->setup_model(@$setup_model_args); |
|
3105 |
+$dbi->setup_model; |
|
3107 | 3106 |
$dbi->insert({$key1 => 1, $key2 => 2}, table => $table1); |
3108 | 3107 |
$dbi->insert({$key1 => 1, $key3 => 3}, table => $table2); |
3109 | 3108 |
$model = $dbi->model($table1); |
... | ... |
@@ -3160,7 +3159,7 @@ $dbi->create_model( |
3160 | 3159 |
], |
3161 | 3160 |
primary_key => [$key1], |
3162 | 3161 |
); |
3163 |
-$dbi->setup_model(@$setup_model_args); |
|
3162 |
+$dbi->setup_model; |
|
3164 | 3163 |
$dbi->insert({$key1 => 1, $key2 => 2}, table => $table1); |
3165 | 3164 |
$model = $dbi->model($table1); |
3166 | 3165 |
$result = $model->select(column => $key1); |
... | ... |
@@ -3945,7 +3944,7 @@ test 'dbi method from model'; |
3945 | 3944 |
$dbi = MyDBI9->connect; |
3946 | 3945 |
eval { $dbi->execute("drop table $table1") }; |
3947 | 3946 |
$dbi->execute($create_table1); |
3948 |
-$dbi->setup_model(@$setup_model_args); |
|
3947 |
+$dbi->setup_model; |
|
3949 | 3948 |
$model = $dbi->model($table1); |
3950 | 3949 |
eval{$model->execute("select * from $table1")}; |
3951 | 3950 |
ok(!$@); |
... | ... |
@@ -3957,7 +3956,7 @@ eval { $dbi->execute("drop table $table1") }; |
3957 | 3956 |
$dbi->execute($create_table1); |
3958 | 3957 |
eval { $dbi->execute("drop table $table2") }; |
3959 | 3958 |
$dbi->execute($create_table2); |
3960 |
-$dbi->setup_model(@$setup_model_args); |
|
3959 |
+$dbi->setup_model; |
|
3961 | 3960 |
$dbi->execute("insert into $table1 ($key1, $key2) values (1, 2)"); |
3962 | 3961 |
$dbi->execute("insert into $table2 ($key1, $key3) values (1, 4)"); |
3963 | 3962 |
$model = $dbi->model($table1); |
... | ... |
@@ -4014,7 +4013,7 @@ $dbi->create_model( |
4014 | 4013 |
$key1 => {in => sub { uc $_[0] }} |
4015 | 4014 |
] |
4016 | 4015 |
); |
4017 |
-$dbi->setup_model(@$setup_model_args); |
|
4016 |
+$dbi->setup_model; |
|
4018 | 4017 |
$dbi->insert({$key1 => 1, $key2 => 2}, table => $table1); |
4019 | 4018 |
$dbi->insert({$key1 => 1, $key3 => 3}, table => $table2); |
4020 | 4019 |
$model = $dbi->model($table1); |
... | ... |
@@ -4199,7 +4198,7 @@ eval { $dbi->execute("drop table $table2") }; |
4199 | 4198 |
|
4200 | 4199 |
$dbi->execute($create_table1); |
4201 | 4200 |
$dbi->execute($create_table2); |
4202 |
-$dbi->setup_model(@$setup_model_args); |
|
4201 |
+$dbi->setup_model; |
|
4203 | 4202 |
is_deeply([sort @{$dbi->model($table1)->columns}], [$key1, $key2]); |
4204 | 4203 |
is_deeply([sort @{$dbi->model($table2)->columns}], [$key1, $key3]); |
4205 | 4204 |
|