documentation extended
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Manual / Troubleshooting.pod
index ebfb71b..eaa35fe 100644 (file)
@@ -1,10 +1,59 @@
-=head1 Troubleshooting
+=head1 NAME
 
-=over 4
+DBIx::Class::Manual::Troubleshooting - Got a problem? Shoot it.
 
-=item 
+=head2  "Can't locate storage blabla"
 
-=back
+You're trying to make a query on a non-connected schema. Make sure you got
+the current resultset from $schema->resultset('Artist') on a schema object
+you got back from connect().
+
+=head2 Tracing SQL
+
+The C<DBIC_TRACE> environment variable controls
+SQL tracing, so to see what is happening try
+
+  export DBIC_TRACE=1
+
+Alternatively use the C<< storage->debug >> class method:-
+
+  $class->storage->debug(1);
+
+To send the output somewhere else set debugfh:-
+
+  $class->storage->debugfh(IO::File->new('/tmp/trace.out', 'w');
+
+Alternatively you can do this with the environment variable too:-
+
+  export DBIC_TRACE="1=/tmp/trace.out"
+
+=head2 Can't locate method result_source_instance
+
+For some reason the table class in question didn't load fully, so the
+ResultSource object for it hasn't been created. Debug this class in
+isolation, then try loading the full schema again.
+
+=head2 Can't get last insert ID under Postgres with serial primary keys
+
+Older L<DBI> and L<DBD::Pg> versions do not handle C<last_insert_id>
+correctly, causing code that uses auto-incrementing primary key
+columns to fail with a message such as:
+
+  Can't get last insert id at /.../DBIx/Class/Row.pm line 95
+
+In particular the RHEL 4 and FC3 Linux distributions both ship with
+combinations of L<DBI> and L<DBD::Pg> modules that do not work
+correctly.
+
+L<DBI> version 1.50 and L<DBD::Pg> 1.43 are known to work.
+
+=head2 ... Can't locate object method "source_name" via package ...
+
+There's likely a syntax error in the table class referred to elsewhere
+in this error message.  In particular make sure that the package
+declaration is correct, so for a schema C< MySchema > you need to
+specify a fully qualified namespace: C< package MySchema::MyTable; >
+for example.
 
 =cut