[Dbix-class] Row object does not work correctly after thaw.
Ash Berlin
ash_cpan at firemirror.com
Fri May 8 10:12:47 GMT 2009
On 8 May 2009, at 10:09, Oleg Pronin wrote:
> Hello.
>
> DBIx::Class::ResultSourceHandle has storable hooks to correctly
> store row object and restore it.
> However after restore, trying to update such an object will fail:
>
> Can't call method "update" on an undefined value at /usr/local/lib/
> perl5/site_perl/5.10.0/DBIx/Class/Row.pm line 490.
>
> Because $obj->result_source->schema isn't a correct schema, $obj-
> >result_source->schema->storage is undefined
>
> It would be great to attach correct schema. Can someone fix that?
This is because you thawed it 'wrong'.
This http://search.cpan.org/perldoc?DBIx::Class::ResultSourceHandle
says the following about thawing:
Thaws frozen handle. Resets the internal schema reference to the
package variable $thaw_schema. The recomened way of setting this is to
use $schema->thaw($ice) which handles this for you.
Alternatively, if you use Catalyst you can set
local $DBIx::Class::ResultSourceHandle::thaw_schema = $c-
>model('MyDBIC')->schema;
or similar somewhere near the start of your request (can't be in an
action, it wouldn't localize right)
-ash
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/dbix-class/attachments/20090508/6af16080/attachment.htm
More information about the DBIx-Class
mailing list