diff --git a/src/lib/Hydra/Schema/BuildOutputs.pm b/src/lib/Hydra/Schema/BuildOutputs.pm new file mode 100644 index 00000000..44b9756e --- /dev/null +++ b/src/lib/Hydra/Schema/BuildOutputs.pm @@ -0,0 +1,90 @@ +use utf8; +package Hydra::Schema::BuildOutputs; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Hydra::Schema::BuildOutputs + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("BuildOutputs"); + +=head1 ACCESSORS + +=head2 build + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 0 + +=head2 name + + data_type: 'text' + is_nullable: 0 + +=head2 path + + data_type: 'text' + is_nullable: 0 + +=cut + +__PACKAGE__->add_columns( + "build", + { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, + "name", + { data_type => "text", is_nullable => 0 }, + "path", + { data_type => "text", is_nullable => 0 }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("build", "name"); + +=head1 RELATIONS + +=head2 build + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "build", + "Hydra::Schema::Builds", + { id => "build" }, + { is_deferrable => 0, on_delete => "CASCADE", on_update => "NO ACTION" }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-01-30 16:22:11 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:UpVoKdd3OwMvlvyMjcYNVA + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +1; diff --git a/src/lib/Hydra/Schema/BuildStepOutputs.pm b/src/lib/Hydra/Schema/BuildStepOutputs.pm new file mode 100644 index 00000000..7f560732 --- /dev/null +++ b/src/lib/Hydra/Schema/BuildStepOutputs.pm @@ -0,0 +1,115 @@ +use utf8; +package Hydra::Schema::BuildStepOutputs; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Hydra::Schema::BuildStepOutputs + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("BuildStepOutputs"); + +=head1 ACCESSORS + +=head2 build + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 0 + +=head2 stepnr + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 0 + +=head2 name + + data_type: 'text' + is_nullable: 0 + +=head2 path + + data_type: 'text' + is_nullable: 0 + +=cut + +__PACKAGE__->add_columns( + "build", + { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, + "stepnr", + { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, + "name", + { data_type => "text", is_nullable => 0 }, + "path", + { data_type => "text", is_nullable => 0 }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=item * L + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("build", "stepnr", "name"); + +=head1 RELATIONS + +=head2 build + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "build", + "Hydra::Schema::Builds", + { id => "build" }, + { is_deferrable => 0, on_delete => "CASCADE", on_update => "NO ACTION" }, +); + +=head2 buildstep + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "buildstep", + "Hydra::Schema::BuildSteps", + { build => "build", stepnr => "stepnr" }, + { is_deferrable => 0, on_delete => "CASCADE", on_update => "NO ACTION" }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-01-30 16:22:11 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dC1yX7arRVu9K3wG9dAjCg + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +1; diff --git a/src/sql/upgrade-9.sql b/src/sql/upgrade-9.sql new file mode 100644 index 00000000..573cc5dc --- /dev/null +++ b/src/sql/upgrade-9.sql @@ -0,0 +1,33 @@ +create table BuildOutputs ( + build integer not null, + name text not null, + path text not null, + primary key (build, name), + foreign key (build) references Builds(id) on delete cascade +); + +insert into BuildOutputs (build, name, path) + select id, 'out', outPath from Builds; + +alter table Builds drop column outPath; + +create table BuildStepOutputs ( + build integer not null, + stepnr integer not null, + name text not null, + path text not null, + primary key (build, stepnr, name), + foreign key (build) references Builds(id) on delete cascade, + foreign key (build, stepnr) references BuildSteps(build, stepnr) on delete cascade +); + +insert into BuildStepOutputs (build, stepnr, name, path) + select build, stepnr, 'out', outPath from BuildSteps where outPath is not null; + +drop index IndexBuildStepsOnBuild; +drop index IndexBuildStepsOnOutpath; +drop index IndexBuildStepsOnOutpathBuild; + +alter table BuildSteps drop column outPath; + +create index IndexBuildStepOutputsOnPath on BuildStepOutputs(path);