[Dbix-class] Bug with find_or_new and insert_or_update with postgresql: any success?

Zbigniew Lukasiak zzbbyy at gmail.com
Mon Feb 25 21:21:06 GMT 2008


On Mon, Feb 25, 2008 at 9:53 PM, Alex Povolotsky <tarkhil at over.ru> wrote:
> Hello!
>
>  I've found in archives nearly my case, that passing NULL to Pg is not
>  'not passing column at all', so adding a new row with a simple code like
>  this
>
>   my $loc = $c->model($self->model_name)->find_or_new({lid => $id});
>   if ($form->submitted && $form->validate) {
>     # Fill in
>  data
>
>     $loc->name($form->field('name'));
>     $loc->descr($form->field('descr'));
>     $loc->update_or_insert();
>     $c->req->redirect($c->uri_for('list'));
>   }
>
>  is impossible.
>
>  Maybe someone has found a good way to solve the problem, or at least a
>  working workaround?

Just guessing - are you using HTML::FormFu?  HTML::FormFu::Model::DBIC
integrates FormFu with DBIC and works around this problem (by not
using find_or_new nor update_or_create). Personally I would be very
happy to see the debate on using the *_or_* methods for tables with Pg
serial primary keys reopened - but there are workarounds for it.


-- 
Zbigniew Lukasiak
http://brudnopis.blogspot.com/



More information about the DBIx-Class mailing list