[Dbix-class] updated release has broken my code

Dave Howorth dhoworth at mrc-lmb.cam.ac.uk
Wed Jan 20 15:32:20 GMT 2016


I have various applications that use DBIx::Class. I just moved one of 
them, which has been running OK for quite a while, to a new machine and 
that meant it got a new environment, including an updated DBIx::Class. 
It no longer runs, and it would help me to try to understand what is 
broken in my own code if I could understand how the DBIC code works and 
why it was changed. If anybody could give me any pointers, I'd be grateful.

My code is dying with the error message:

DBIx::Class::Row::store_column(): No such column '_type' on 
TDB::Schema::Result::Node

This appears to be caused by a change in the code in DBIx::Class::Row in 
store_column() in particular where

   $self->throw_exception( "No such column '${column}'" )
     unless exists $self->{_column_data}{$column} || 
$self->has_column($column);

has been replaced by

   $self->throw_exception( "No such column '${column}' on " . ref $self )
     unless exists $self->{_column_data}{$column} || 
$self->result_source->has_column($column);

If I put back the original code there, my application appears to work.

Now my TDB::Schema::Result::Node contains some gnarly code that it will 
take me some time to regain familiarity with, and I think it would help 
me if I understood why that change had been made in DBIx::Class::Row so 
I might get some idea of what I need to change in my own code.

If anybody can point me to the change or provide any explanation, I'd 
appreciate it.

Cheers, Dave

PS The old version says it is  '0.08200' and the new is '0.082820'.



More information about the DBIx-Class mailing list