[Catalyst] Trouble inserting data after migrate database from SQLite to My SQL

Jordi Amorós jamoros at etsetb.upc.edu
Tue Nov 10 13:53:53 GMT 2009


Hi all,

I'm developing a little web application (a remote lab that works with
Catalyst+LabView). Until now I was using SQLite, but due to new
requirements I've had to migrate the database.

I've created a new model:
perl script/ilabrs_create.pl model DB DBIC::Schema ilabrs::Schema
create=static components=TimeStamp,EncodedColumn dbi:mysql:ilabrs

and then, after restarting the server all seemed to work. Actually,
list, edit and erase from the database is working fine. But when I want
to add data, it doesn't work.

The problem appears when an id it's not provided. If I'm not wrong,
"my $exp = $c->model('DB::Activitats')-> find_or_new({id=> $id});"
should solve that. But: "$c->log->debug("Experiment ID:".$exp->id);",
prints nothing.

I'm absolutely clueless. I've tried to split de edit function in two:
-one to actually edit (my $exp = $c->model('DB::Activitats')->
find({id=> $id});) which still works properly.

-and a second one to add (my $exp = $c->model('DB::Activitats')->
new({});) which doesn't because $exp->id is empty and 
$exp->update_or_insert;
cause an exception:

DBI Exception: DBD::mysql::st execute failed: Column 'id' cannot be
null...

Any suggestion, idea, clue... will be welcome.

Thanks,

Jordi





 




More information about the Catalyst mailing list