DBIx-Class-Schema-Diff
view release on metacpan or search on metacpan
t/01_basic.t view on Meta::CPAN
# add to existing columns to change their attrs:
$s1b->source('Customer')->add_columns(
"first_name",
{ data_type => "varchar", is_nullable => 1, size => 45 },
"last_name",
{ data_type => "varchar", is_nullable => 0, size => 60 }
);
is_deeply(
NewD( old_schema => $s1, new_schema => $s1b )->diff,
{
Country => {
_event => "changed",
columns => {
foo => {
_event => "added"
}
}
},
Customer => {
_event => "changed",
columns => {
first_name => {
_event => "changed",
diff => {
is_nullable => 1
}
},
last_name => {
_event => "changed",
diff => {
size => 60
}
}
}
}
},
"Saw on-the-fly changes to 'first_name' and 'last_name' columns"
);
is_deeply(
NewD( old_schema => $s1, new_schema => $s3 )->diff,
{
Address => {
_event => "changed",
isa => [
"+Test::DummyClass",
],
relationships => {
customers2 => {
_event => "added"
},
staffs => {
_event => "changed",
diff => {
attrs => {
cascade_delete => 1
}
}
}
},
table_name => "sakila.address"
},
City => {
_event => "changed",
table_name => "city1",
constraints => {
primary => {
_event => "deleted"
}
}
},
Film => {
_event => "changed",
columns => {
film_id => {
_event => "changed",
diff => {
is_auto_increment => 0
}
},
id => {
_event => "added"
},
rating => {
_event => "changed",
diff => {
extra => {
list => [
"G",
"PG",
"PG-13",
"R",
"NC-17",
"TV-MA"
]
}
}
},
rental_rate => {
_event => "changed",
diff => {
size => [
6,
2
]
}
}
},
constraints => {
primary => {
_event => "changed",
diff => {
columns => [
"id"
]
}
t/01_basic.t view on Meta::CPAN
_event => "changed",
columns => {
last_update => {
_event => "changed",
diff => {
is_nullable => 1
}
}
}
},
FooBar => {
_event => "added"
},
Rental => {
_event => "changed",
relationships => {
customer => {
_event => "deleted"
}
},
constraints => {
rental_date => {
_event => "deleted"
},
rental_date1 => {
_event => "added"
}
}
},
SaleByStore => {
_event => "deleted"
},
Store => {
_event => "changed",
constraints => {
idx_unique_store_manager => {
_event => "added"
}
}
}
},
"Saw expected changes between Sakila and Sakila3"
);
is_deeply(
NewD( old_schema => $s3, new_schema => $s1 )->diff,
{
Address => {
_event => "changed",
isa => [
"-Test::DummyClass"
],
relationships => {
customers2 => {
_event => "deleted"
},
staffs => {
_event => "changed",
diff => {
attrs => {
cascade_delete => 0
}
}
}
},
table_name => "address"
},
City => {
_event => "changed",
table_name => "city",
constraints => {
primary => {
_event => "added"
}
}
},
Film => {
_event => "changed",
columns => {
film_id => {
_event => "changed",
diff => {
is_auto_increment => 1
}
},
id => {
_event => "deleted"
},
rating => {
_event => "changed",
diff => {
extra => {
list => [
"G",
"PG",
"PG-13",
"R",
"NC-17"
]
}
}
},
rental_rate => {
_event => "changed",
diff => {
size => [
4,
2
]
}
}
},
constraints => {
primary => {
_event => "changed",
diff => {
columns => [
"film_id"
]
}
}
( run in 0.562 second using v1.01-cache-2.11-cpan-39bf76dae61 )