This is quite puzzling!
$item->as_of( "2001-12-31 23:59:59" );
$params->{as_of} = "2005-05-05 05:05:05";
$form->process( item => $item, params => $params );
# here, $item->as_of is CURRENT_TIMESTAMP regardless!
We're wanting to keep the timestamp as-is, not
set-to-current-timestamp-upon-every-update.
Using HTML::FormHandler (v0.32005) to process the $form, it doesn't seem to
matter what we stuff into the $params->{as_of} field, or what we inject into
the $item->as_of() field itself, it gets set to current timestamp no matter
what. All suggestions and clue-sticks welcome.
In MyApp::Schema::DB::Result::MyTable we override the db field completely:
__PACKAGE__->add_columns('as_of',
{
# %{__PACKAGE__->column_info('as_of')},
data_type => 'timestamp',
datetime_undef_if_invalid => 1,
# default_value => \"current_timestamp",
is_nullable => 0,
# set_on_create => 1,
# *set_on_update => 0*, # ignored wholesale from what we can tell
} );
So there's no "set_on_create" or "set_on_update" at all:
DB<10> x $item->column_info('as_of')
0 HASH(0xd7d2538)
'_ic_dt_method' => 'timestamp'
'_inflate_info' => HASH(0xd7d8fd0)
'deflate' => CODE(0xd7d90d0)
->
&DBIx::Class::InflateColumn::DateTime::__ANON__[/usr/local/share/perl/5.10.0/DBIx/Class/InflateColumn/DateTime.pm:190]
in /usr/local/share/perl/5.10.0/DBIx/Class/InflateColumn/DateTime.pm:185-190
'inflate' => CODE(0xd7d1e68)
->
&DBIx::Class::InflateColumn::DateTime::__ANON__[/usr/local/share/perl/5.10.0/DBIx/Class/InflateColumn/DateTime.pm:184]
in /usr/local/share/perl/5.10.0/DBIx/Class/InflateColumn/DateTime.pm:169-184
'data_type' => 'timestamp'
'datetime_undef_if_invalid' => 1
'is_nullable' => 0
'name' => 'as_of'
"Jane! How do I stop this crazy thing?!" Pointers welcome.
On Tue, Jul 19, 2011 at 3:53 PM, will trillich
<[email protected]>wrote:
> Been using DBIx::Class (v0.08127) for a while now with Catalyst (v5.80032)
> and Moose (v1.24), what a great suite of powerful libraries!
>
> Question on how to turn OFF or DISABLE *set_on_update* tho:
>
> __PACKAGE__->add_columns('as_of',
> {
> %{__PACKAGE__->column_info('as_of')},
> set_on_create => 1,
> # set_on_update => 0,
> } );
>
> The set_on_create is working as expected. The set_on_update seems to work
> whether we specify 1 or 0 or leave the declaration out altogether.
>
> Is there another setting somewhere that interferes?
>
>
> --
> "Don't just accept the benefits of civilization -- add to it. Extend it.
> Preserve it." -- Jeff Greason
>
--
"Don't just accept the benefits of civilization -- add to it. Extend it.
Preserve it." -- Jeff Greason
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[email protected]