DBIx::Class::Schema::Loader::Manual::UpgradingFromV4 - Important Information Related to Upgrading from Version 0.04006
add_column
The new Loader detects much more information about columns and sets flags like is_auto_increment that it didn't set before.
is_auto_increment
RelBuilder
The new RelBuilder will give you nicer accessor names for relationships, so you will no longer have conflicts between a foreign key column and the relationship accessor itself (if the FK is named _id.)
_id
It will also more correctly infer the relationship type, e.g. some relationships that were previously detected as a has_many will now be a might_have (when it detects a unique constraint on the foreign key column.)
has_many
might_have
Also cascade_delete and cascade_copy are turned off for by default for has_many and might_have relationships, while belongs_to relationships are created with on_delete => 'CASCADE' and on_update => 'CASCADE' by default. This is overridable via relationship_attrs.
cascade_delete
cascade_copy
belongs_to
on_delete => 'CASCADE'
on_update => 'CASCADE'
moniker_map
Table names are now singularized when determining the Result class names. So the table user_roles would have become UserRoles in 0.04006 but now becomes UserRole instead.
Result
user_roles
UserRoles
0.04006
UserRole
use_namespaces
Now defaults to on. See "use_namespaces" in DBIx::Class::Schema::Loader::Base and "load_namespaces" in DBIx::Class::Schema.
Support for more databases
We now support Microsoft SQL Server and Sybase, and there are also many improvements to the other backends.
In backward compatibility mode, the Loader will use the old relationship names and types, will not singularize monikers for tables, and use_namespaces will be off.
To control this behavior see "naming" in DBIx::Class::Schema::Loader::Base and "use_namespaces" in DBIx::Class::Schema::Loader::Base.
When reading a Schema.pm from a static schema generated with an 0.04 version of Loader, backward compatibility mode will default to on, unless overridden with the naming and/or use_namespaces attributes.
Schema.pm
0.04
naming
Dynamic schemas will always by default use 0.04006 mode and have use_namespaces off.
To upgrade a dynamic schema, set the naming and use_namespaces attributes (which is proxied to the loader) in your Schema.pm:
__PACKAGE__->naming('current'); __PACKAGE__->use_namespaces(1);
See "AUTHOR" in DBIx::Class::Schema::Loader and "CONTRIBUTORS" in DBIx::Class::Schema::Loader.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install DBIx::Class::Schema::Loader, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DBIx::Class::Schema::Loader
CPAN shell
perl -MCPAN -e shell install DBIx::Class::Schema::Loader
For more information on module installation, please visit the detailed CPAN module installation guide.