10 mx-run AddListCreateDate [options] -H hostname -D dbname -u username [-F]
12 this is a subclass of L<CXGN::Metadata::Dbpatch>
13 see the perldoc of parent class for more details.
17 This patch add create date to list objects
23 =head1 COPYRIGHT & LICENSE
25 Copyright 2010 Boyce Thompson Institute for Plant Research
27 This program is free software; you can redistribute it and/or modify
28 it under the same terms as Perl itself.
33 package AlterListTimestampType
;
37 use Bio
::Chado
::Schema
;
39 extends
'CXGN::Metadata::Dbpatch';
42 has
'+description' => ( default => <<'' );
43 This patch modify create
/modified date to be timestamp types
in the database
49 print STDOUT
"Executing the patch:\n " . $self->name . ".\n\nDescription:\n ". $self->description . ".\n\nExecuted by:\n " . $self->username . " .";
51 print STDOUT
"\nChecking if this db_patch was executed before or if previous db_patches have been executed.\n";
53 print STDOUT
"\nExecuting the SQL commands.\n";
54 my $schema = Bio
::Chado
::Schema
->connect( sub { $self->dbh->clone } );
57 $self->dbh->do(<<EOSQL);
60 alter table sgn_people.list add column modified_date timestamp NULL DEFAULT now();
62 update sgn_people.list set create_date = to_timestamp("timestamp", 'YYYY-MM-DD_hh24:mi:ss') where timestamp ~ '\\d\\d\\d\\d-\\d\\d-\\d\\d_\\d\\d\\:\\d\\d\\:\\d\\d';
63 update sgn_people.list set modified_date = to_timestamp(modify_timestamp, 'YYYY-MM-DD_hh24:mi:ss');
65 alter table sgn_people.list drop column "timestamp";
66 alter table sgn_people.list drop column modify_timestamp;
73 $schema->txn_do($coderef);
75 die "Load failed! " . $_ . "\n" ;
77 print "You're done!\n";