Remove mention of obsolete DBIx::Class::WebForm.
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Manual / Intro.pod
index 8e4b7fd..5c7f7e5 100644 (file)
@@ -74,7 +74,8 @@ L<DBIx::Class::Row> objects.
 Let's look at how you can set and use your first native L<DBIx::Class> tree.
 
 First we'll see how you can set up your classes yourself.  If you want them to
-be auto-discovered, just skip to the next section, which shows you how to use
+be auto-discovered, just skip to the L<next section|/Using
+DBIx::Class::Schema::Loader>, which shows you how to use
 L<DBIx::Class::Schema::Loader>.
 
 =head2 Setting it up manually
@@ -114,6 +115,10 @@ automatic row ordering:
   __PACKAGE__->load_components(qw/ Ordered /);
   __PACKAGE__->position_column('rank');
 
+Ordered will refer to a field called 'position' unless otherwise directed.  Here you are defining
+the ordering field to be named 'rank'.  (NOTE: Insert errors may occur if you use the Ordered
+component, but have not defined a position column or have a 'position' field in your row.)
+
 Set the table for your class:
 
   __PACKAGE__->table('album');
@@ -131,34 +136,29 @@ of information that it may be useful to have -- just pass C<add_columns> a hash:
                               size      => 16,
                               is_nullable => 0,
                               is_auto_increment => 1,
-                              default_value => '',
                             },
                           artist =>
                             { data_type => 'integer',
                               size      => 16,
                               is_nullable => 0,
-                              is_auto_increment => 0,
-                              default_value => '',
                             },
                           title  =>
                             { data_type => 'varchar',
                               size      => 256,
                               is_nullable => 0,
-                              is_auto_increment => 0,
-                              default_value => '',
                             },
                           rank =>
                             { data_type => 'integer',
                               size      => 16,
                               is_nullable => 0,
-                              is_auto_increment => 0,
-                              default_value => '',
+                              default_value => 0,
                             }
                          );
 
 DBIx::Class doesn't directly use most of this data yet, but various related
-modules such as L<DBIx::Class::WebForm> make use of it. Also it allows you to
-create your database tables from your Schema, instead of the other way around.
+modules such as L<HTML::FormHandler::Model::DBIC> make use of it.
+Also it allows you to create your database tables from your Schema,
+instead of the other way around.
 See L<DBIx::Class::Schema/deploy> for details.
 
 See L<DBIx::Class::ResultSource> for more details of the possible column
@@ -187,24 +187,37 @@ foreign key:
 See L<DBIx::Class::Relationship> for more information about the various types of
 available relationships and how you can design your own.
 
-=head2 Using L<DBIx::Class::Schema::Loader>
+=head2 Using DBIx::Class::Schema::Loader
 
-This is an external module, and not part of the L<DBIx::Class> distribution.
-Like L<Class::DBI::Loader>, it inspects your database, and automatically creates
-classes for all the tables in your database.  Here's a simple setup:
+This module (L<DBIx::Class::Schema::Loader>) is an external module, and not part
+of the L<DBIx::Class> distribution. It inspects your database, and automatically
+creates classes for all the tables in your schema.
 
-  package My::Schema;
-  use base qw/DBIx::Class::Schema::Loader/;
+The simplest way to use it is via the L<dbicdump> script from the
+L<DBIx::Class::Schema::Loader> distribution. For example:
+
+    $ dbicdump -o dump_directory=./lib \
+        -o components='["InflateColumn::DateTime"]' \
+        MyApp::Schema dbi:mysql:mydb user pass
+
+If you have a mixed-case database, use the C<preserve_case> option, e.g.:
+
+    $ dbicdump -o dump_directory=./lib -o preserve_case=1 \
+        -o components='["InflateColumn::DateTime"]' \
+        MyApp::Schema dbi:mysql:mydb user pass
 
-  __PACKAGE__->loader_options( relationships => 1 );
+If you are using L<Catalyst>, then you can use the helper that comes with
+L<Catalyst::Model::DBIC::Schema>:
 
-  1;
+    $ script/myapp_create.pl model MyDB DBIC::Schema MyDB::Schema \
+        create=static moniker_map='{ foo => "FOO" }' dbi:SQLite:./myapp.db \
+        on_connect_do='PRAGMA foreign_keys=ON' quote_char='"'
 
-The actual autoloading process will occur when you create a connected instance
-of your schema below.
+See L<Catalyst::Helper::Model::DBIC::Schema> for more information on this
+helper.
 
-See the L<DBIx::Class::Schema::Loader> documentation for more information on its
-many options.
+See the L<DBIx::Class::Schema::Loader> and L<DBIx::Class::Schema::Loader::Base>
+documentation for more information on the many loader options.
 
 =head2 Connecting
 
@@ -225,7 +238,7 @@ second database you want to access:
 Note that L<DBIx::Class::Schema> does not cache connections for you. If you use
 multiple connections, you need to do this manually.
 
-To execute some sql statements on every connect you can add them as an option in
+To execute some SQL statements on every connect you can add them as an option in
 a special fifth argument to connect:
 
   my $another_schema = My::Schema->connect(
@@ -236,7 +249,7 @@ a special fifth argument to connect:
       { on_connect_do => \@on_connect_sql_statments }
   );
 
-See L<DBIx::Class::Schema::Storage::DBI/connect_info> for more information about
+See L<DBIx::Class::Storage::DBI/connect_info> for more information about
 this and other special C<connect>-time options.
 
 =head3 Via a database handle