6 CreateProjectOwnerTable.pm
10 mx-run CreateProjectOwnerTable [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 creates the phenome.project_owner table used for storing sp_person_id of hte person who created the trial
19 This subclass uses L<Moose>. The parent class uses L<MooseX::Runnable>
24 =head1 COPYRIGHT & LICENSE
26 Copyright 2010 Boyce Thompson Institute for Plant Research
28 This program is free software; you can redistribute it and/or modify
29 it under the same terms as Perl itself.
34 package CreateProjectOwnerTable
;
38 extends
'CXGN::Metadata::Dbpatch';
40 has
'+description' => ( default => <<'');
41 This patch creates a phenome
.project_owner table used
for assigning sp_person_id to created trials
53 print STDOUT
"Executing the patch:\n " . $self->name . ".\n\nDescription:\n ". $self->description . ".\n\nExecuted by:\n " . $self->username . " .";
55 print STDOUT
"\nChecking if this db_patch was executed before or if previous db_patches have been executed.\n";
57 print STDOUT
"\nExecuting the SQL commands.\n";
59 $self->dbh->do(<<EOSQL);
62 CREATE TABLE IF NOT EXISTS phenome.project_owner (
63 "project_owner_id" SERIAL PRIMARY KEY,
64 "project_id" integer REFERENCES public.project NOT NULL,
65 "sp_person_id" integer REFERENCES sgn_people.sp_person NOT NULL,
66 "create_date" timestamp default now()
70 -- grant usage to web_usr
71 GRANT ALL on phenome.project_owner to web_usr;
72 GRANT USAGE ON phenome.project_owner_project_owner_id_seq to web_usr;
76 print "You're done!\n";