[Dbix-class] DBIx schema loader (dump schema using
make_schema_at) wierd behaviour
patrick at pantheon.at
Wed Aug 8 07:03:02 GMT 2012
On Wed, Aug 08 2012, Rajeev Prasad <rp.neuli at yahoo.com> wrote:
> am I missing anything? when I dump schema of my database using schema
> loader's make_schema_at. Some .pm file names under Result
> corrosponding to folders have names chnaged! they do not match to
> table names!!
> e.g. table name costlycookies shows up as Costlycooky.pm !!! another
> table cheapcookis show up as Cheapcooky.pm another table named els is
> showing up a El.pm !!!
this states that the default behaviour of schema loader is to
singularise table names (so that your Result classes are singular). this
makes sense, since each of your objects represents a single entity.
you can override this behaviour, though:
> DBIx::Class::Schema::resultset(): Can't find source for Costlycookies
> at /my/path/cgi-bin/myscript.pl line 53
> $coki_rs = $schema->resultset('Costlycookies')->search(....
since this singularisation is also performed for the ResultSet classes,
you have to call
$coki_rs = $schema->resultset('Costlycooky')->search(....
to fetch cookies from the db.
whether it is best practice to use singular or plural table names is a
controversial question, see e.g. this thread:
I always use singular, since this is easiest to handle for ORMs (as your
question shows, plurals can cause confusion).
Patrick Meidl ........................ patrick at pantheon.at
Vienna, Austria ...................... http://gplus.to/pmeidl
More information about the DBIx-Class