В более старых версиях DBIx::Class
(не уверен в номере версии) работало следующее:
my $rs = $schema->resultset('Auctions');
my $lots = $rs->search(
undef,
{ '+select' => 'description', '+as' => 'description' },
);
Это не работает для обновлений строк в современных версиях DBIx::Class
.Попытка сделать это с обновлением
$auction->update({ description => '...'})
в DBIx::Class
0.08123 приводит к следующей ошибке: «DBIx :: Class :: Relationship :: CascadeActions :: update (): нет описания такого столбца в ...»
Предполагается, что сценарий, которому требуется дополнительный столбец, выполняется в своем собственном процессе.Вы можете сделать что-то вроде этого:
my $rs = $schema->resultset('Auctions');
$rs->result_source->add_columns('description');
YourApp::Schema::Lots->add_columns('description');
YourApp::Schema::Lots->register_column('description');
Конечно, это глобальное изменение.После добавления столбца другой код в том же процессе начнет извлекать столбец description
в запросах.Не говоря уже о том, что это некрасиво.