[Dbix-class] Re: Using DBIx::Class to copy data between different
RDBMS
Eden Cardim
edencardim at gmail.com
Thu Dec 3 08:06:09 GMT 2009
>>>>> "Phillip" == Phillip Moore <w.phillip.moore at gmail.com> writes:
Phillip> Now I recall why I thought get_columns might not work: if I understand
Phillip> the docs correctly, get_columns() only returns key/value
Phillip> pairs for the CACHED columns form the database.
That's correct, you can tell the resultset not to fetch certain columns
by passing in a specific column list via the 'select' resultset
attribute, but why would you do that if this is a solution written
specifically to replicate all the values.
Phillip> If I get a row, and dbic only gets me a subset of the available
Phillip> columns, is there an easy way to force dbic to get them
Phillip> ALL?
$row->result_source->resultset->find($row->ident_condition);
This will (sort of) guarantee that the resultset fetches all the
columns. The only thing that could break this is if you've defined
->resultset_attributes in your source.
Phillip> With Class::DBI, I dealt with this by defining all the
Phillip> columns as part of the Essential column group, but column
Phillip> groups are a feature that appear to be missing from
Phillip> DBIx::Class. I used them very heavily, and had to roll my
Phillip> own mechanism for grouping them. Wasn't rocket science....
DBIC doesn't have that "feature" because it's superceeded by the cloning
that happends every time you run ->search, if you need a resultset with
a specific set of columns, have a method build a resultset with the
relevant columns declared via the 'select' attribute and it'll propagate
to all the other resultsets you build from that. If you need to add
additional columns, use '+select' instead.
Phillip> Do I need to force a query of every possible column for
Phillip> each row, to ensure that lazy population doesn't result in
Phillip> missing data in my SQLite copy of the data?
If you don't mess with 'select' in evil ways, you're good.
--
Eden Cardim Need help with your Catalyst or DBIx::Class project?
Code Monkey http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://edenc.vox.com/ http://www.shadowcat.co.uk/servers/
More information about the DBIx-Class
mailing list