SL Backcompat Plan:
-*** dynamic schemas
-
-* should default to 0.04006 mode
-* __PACKAGE__->naming('current') will turn on current mode
-
*** 0.04006 mode
-* use the detector and compat relbuilder ilmari already wrote for static schemas
* add a loud warning that says that we're running in backcompat mode, and refers
- to the ::Manual::UpgradingFrom0.04006 POD.
+ to the ::Manual::UpgradingFromV4 POD.
+* preserve custom content from un-singularized Results and delete them when in
+ upgrade mode
*** backcompat tests
Need a comprehensive backcompat.t
-*** Write ::Manual::UpgradingFrom0.04006 POD
-
*** Catalyst Helper
* Add 'upgrade=1' option that upgrades from both old S::L and old helper,
... and lots of other folks. If we forgot you, please write the current
maintainer or RT.
-=head1 LICENSE
+=head1 COPYRIGHT & LICENSE
+
+Copyright (c) 2006 - 2009 by the aforementioned
+L<DBIx::Class::Schema::Loader/AUTHOR> and
+L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
monikers
dynamic
naming
+ _upgrading
/);
__PACKAGE__->mk_accessors(qw/
returns a false value, the code falls back to default behavior
for that table name.
-The default behavior is: C<join '', map ucfirst, split /[\W_]+/, lc $table>,
-which is to say: lowercase everything, split up the table name into chunks
-anywhere a non-alpha-numeric character occurs, change the case of first letter
-of each chunk to upper case, and put the chunks back together. Examples:
+The default behavior is to singularize the table name, and: C<join '', map
+ucfirst, split /[\W_]+/, lc $table>, which is to say: lowercase everything,
+split up the table name into chunks anywhere a non-alpha-numeric character
+occurs, change the case of first letter of each chunk to upper case, and put
+the chunks back together. Examples:
Table Name | Moniker Name
---------------------------
$self->schema_version_to_dump($DBIx::Class::Schema::Loader::VERSION);
if (not ref $self->naming && defined $self->naming) {
- my $naming_ver = $self->naming;;
+ my $naming_ver = $self->naming;
$self->{naming} = {
relationships => $naming_ver,
monikers => $naming_ver,
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE
--- /dev/null
+=pod
+
+=head1 NAME
+
+DBIx::Class::Schema::Loader::Manual::UpgradingFromV4 - Important Information
+Related to Upgrading from Version 0.04006
+
+=head1 What Changed
+
+=over 4
+
+=item *
+
+add_column
+
+The new Loader detects much more information about columns and sets flags like
+C<is_auto_increment> that it didn't set before.
+
+=item *
+
+RelBuilder
+
+The new RelBuilder will give you much nicer accessor names for relationships,
+so you will no longer have conflicts between a foreign key column and the
+relationship accessor itself.
+
+It will also more correctly infer the relationship type, e.g. some relationships
+that were previously detected as a C<has_many> will now be a C<might_have>
+(when the foreign key refers to a unique index.)
+
+=item *
+
+moniker_map
+
+Table names are now singularized when determining the C<Result> class names. So
+the table C<user_roles> would have become C<UserRoles> in C<0.04006> but now
+becomes C<UserRole> instead.
+
+=item *
+
+Support for more databases
+
+We now support Microsoft SQL Server and Sybase, and there are also improvements
+to the other backends.
+
+=back
+
+=head1 Backward Compatibility
+
+In backward compatibility mode, the Loader will use the old relationship names
+and types, and will not singularize monikers for tables.
+
+To control this behavior see L<DBIx::Class::Schema::Loader::Base/naming>.
+
+=head2 Static Schemas
+
+When reading a C<Schema.pm> from a static schema generated with an C<0.04>
+version of Loader, backward compatibility mode willl be turned on, unless
+overridden with the naming accessor.
+
+=head2 Dynamic Schemas
+
+Dynamic schemas will always by default use C<0.04006> mode.
+
+To upgrade a dynamic schema, set the naming accessor (which is proxied to the
+loader) in your C<Schema.pm>:
+
+ __PACKAGE__->naming('current');
+
+=head1 AUTHOR
+
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+
+=head1 LICENSE
+
+This library is free software; you can redistribute it and/or modify it under
+the same terms as Perl itself.
+
+=cut
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE