Merge branch 'master' into topic/row_column_designs
[sgn.git] / db / 00144 / AddImagingEventBaseDateCvterm.pm
blob318dc88291d1fd0f976d12c76754f67ceacde043
1 #!/usr/bin/env perl
4 =head1 NAME
6 AddImagingEventBaseDateCvterm
8 =head1 SYNOPSIS
10 mx-run AddImagingEventBaseDateCvterm [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.
15 =head1 DESCRIPTION
16 This patch adds cvterm for an imaging event's base date. Useful when multiple, fixed, camera rigs are capturing different sections of the field experiment, and the cameras are not capturing at the exact same times.
17 This subclass uses L<Moose>. The parent class uses L<MooseX::Runnable>
19 =head1 AUTHOR
21 =head1 COPYRIGHT & LICENSE
23 Copyright 2010 Boyce Thompson Institute for Plant Research
25 This program is free software; you can redistribute it and/or modify
26 it under the same terms as Perl itself.
28 =cut
31 package AddImagingEventBaseDateCvterm;
33 use Moose;
34 use Bio::Chado::Schema;
35 use Try::Tiny;
36 extends 'CXGN::Metadata::Dbpatch';
39 has '+description' => ( default => <<'' );
40 This patch adds cvterm for an imaging event's base date. Useful when multiple, fixed, camera rigs are capturing different sections of the field experiment, and the cameras are not capturing at the exact same times.
42 has '+prereq' => (
43 default => sub {
44 [],
49 sub patch {
50 my $self=shift;
52 print STDOUT "Executing the patch:\n " . $self->name . ".\n\nDescription:\n ". $self->description . ".\n\nExecuted by:\n " . $self->username . " .";
54 print STDOUT "\nChecking if this db_patch was executed before or if previous db_patches have been executed.\n";
56 print STDOUT "\nExecuting the SQL commands.\n";
57 my $schema = Bio::Chado::Schema->connect( sub { $self->dbh->clone } );
60 print STDERR "INSERTING CV TERMS...\n";
62 my $terms = {
63 'project_property' => [
64 'drone_run_base_date',
65 'drone_run_camera_rig_description'
69 foreach my $t (keys %$terms){
70 foreach (@{$terms->{$t}}){
71 $schema->resultset("Cv::Cvterm")->create_with({
72 name => $_,
73 cv => $t
74 });
78 print "You're done!\n";
82 ####
83 1; #
84 ####