Merge remote-tracking branch 'origin/master' into flake
Also update flake.lock
This commit is contained in:
commit
100e09a5b3
17
flake.lock
17
flake.lock
|
@ -2,19 +2,20 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nix": {
|
"nix": {
|
||||||
"info": {
|
"info": {
|
||||||
"lastModified": 1580749449,
|
"lastModified": 1581081721,
|
||||||
"narHash": "sha256-wEPYfs8ULx0dK6R4hrsXC/r8omxJLc86OhQg39eCo0c="
|
"narHash": "sha256-Axhas6uySMqevQrjdLaIfFQZgyCueBngzUV7CEYhbWI="
|
||||||
},
|
},
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"info": {
|
"info": {
|
||||||
"narHash": "sha256-V4jz8Hbt+mZkXhH+3KmUQcRGETOFd8mVPhgQlS4Lu5E="
|
"lastModified": 1580555706,
|
||||||
|
"narHash": "sha256-ly5Gxl9yZgW2w1F3aDU5bvg34Ct+juUaOg8vue+Mkbo="
|
||||||
},
|
},
|
||||||
"inputs": {},
|
"inputs": {},
|
||||||
"locked": {
|
"locked": {
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "dd45a16733f4469a0dded6ad0bf9a662ea39bdea",
|
"rev": "43e283790fbe330b723ac44b584824cf6d85c1ee",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -27,7 +28,7 @@
|
||||||
"locked": {
|
"locked": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"rev": "0a4e911cf478d0d38082a8840a5acc8f57d00086",
|
"rev": "d2032edb2f86e955a8a7724a27c0c3225f386500",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -37,14 +38,14 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"info": {
|
"info": {
|
||||||
"lastModified": 1580555706,
|
"lastModified": 1581348815,
|
||||||
"narHash": "sha256-ly5Gxl9yZgW2w1F3aDU5bvg34Ct+juUaOg8vue+Mkbo="
|
"narHash": "sha256-ZYGphR59gsdFhtZYDoeuCtULm8ym/qJSHIslih9b1s8="
|
||||||
},
|
},
|
||||||
"inputs": {},
|
"inputs": {},
|
||||||
"locked": {
|
"locked": {
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "43e283790fbe330b723ac44b584824cf6d85c1ee",
|
"rev": "d959778e0934c4c93896d509a65de798909c7cdd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<AggregateConstituents>
|
=head1 TABLE: C<aggregateconstituents>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("AggregateConstituents");
|
__PACKAGE__->table("aggregateconstituents");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -103,8 +103,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-08-15 00:20:01
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:TLNenyPLIWw2gWsOVhplZw
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:bQfQoSstlaFy7zw8i1R+ow
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<BuildInputs>
|
=head1 TABLE: C<buildinputs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("BuildInputs");
|
__PACKAGE__->table("buildinputs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ __PACKAGE__->table("BuildInputs");
|
||||||
data_type: 'integer'
|
data_type: 'integer'
|
||||||
is_auto_increment: 1
|
is_auto_increment: 1
|
||||||
is_nullable: 0
|
is_nullable: 0
|
||||||
|
sequence: 'buildinputs_id_seq'
|
||||||
|
|
||||||
=head2 build
|
=head2 build
|
||||||
|
|
||||||
|
@ -98,7 +99,12 @@ __PACKAGE__->table("BuildInputs");
|
||||||
|
|
||||||
__PACKAGE__->add_columns(
|
__PACKAGE__->add_columns(
|
||||||
"id",
|
"id",
|
||||||
{ data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
|
{
|
||||||
|
data_type => "integer",
|
||||||
|
is_auto_increment => 1,
|
||||||
|
is_nullable => 0,
|
||||||
|
sequence => "buildinputs_id_seq",
|
||||||
|
},
|
||||||
"build",
|
"build",
|
||||||
{ data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
|
{ data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
|
||||||
"name",
|
"name",
|
||||||
|
@ -176,8 +182,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-10-08 13:08:15
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:OaJPzRM+8XGsu3eIkqeYEw
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:/Fwb8emBsvwrZlEab2X+gQ
|
||||||
|
|
||||||
my %hint = (
|
my %hint = (
|
||||||
columns => [
|
columns => [
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<BuildMetrics>
|
=head1 TABLE: C<buildmetrics>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("BuildMetrics");
|
__PACKAGE__->table("buildmetrics");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -177,8 +177,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07043 @ 2015-07-30 16:52:20
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:qoPm5/le+sVHigW4Dmum2Q
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Roy7h/K9u7DQOzet4B1sbA
|
||||||
|
|
||||||
sub json_hint {
|
sub json_hint {
|
||||||
return { columns => ['value', 'unit'] };
|
return { columns => ['value', 'unit'] };
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<BuildOutputs>
|
=head1 TABLE: C<buildoutputs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("BuildOutputs");
|
__PACKAGE__->table("buildoutputs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -94,8 +94,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:V8MbzKvZNEaeHBJV67+ZMQ
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:71R9clwAP6vzDh10EukTaw
|
||||||
|
|
||||||
my %hint = (
|
my %hint = (
|
||||||
columns => [
|
columns => [
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<BuildProducts>
|
=head1 TABLE: C<buildproducts>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("BuildProducts");
|
__PACKAGE__->table("buildproducts");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -143,8 +143,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07043 @ 2016-04-13 14:49:33
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:kONECZn56f7sqfrLviiUOQ
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:iI0gmKqQxiPBTy5QsM6tpQ
|
||||||
|
|
||||||
my %hint = (
|
my %hint = (
|
||||||
columns => [
|
columns => [
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<BuildStepOutputs>
|
=head1 TABLE: C<buildstepoutputs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("BuildStepOutputs");
|
__PACKAGE__->table("buildstepoutputs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -119,8 +119,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:A/4v3ugXYbuYoKPlOvC6mg
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Y6DpbTM6z4cOGoYIhD3i1A
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<BuildSteps>
|
=head1 TABLE: C<buildsteps>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("BuildSteps");
|
__PACKAGE__->table("buildsteps");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -215,8 +215,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07045 @ 2016-12-07 13:48:19
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:3FYkqSUfgWmiqZzmX8J4TA
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:AMjHq4g/fSUv/lZuZOljYg
|
||||||
|
|
||||||
my %hint = (
|
my %hint = (
|
||||||
columns => [
|
columns => [
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<Builds>
|
=head1 TABLE: C<builds>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("Builds");
|
__PACKAGE__->table("builds");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ __PACKAGE__->table("Builds");
|
||||||
data_type: 'integer'
|
data_type: 'integer'
|
||||||
is_auto_increment: 1
|
is_auto_increment: 1
|
||||||
is_nullable: 0
|
is_nullable: 0
|
||||||
|
sequence: 'builds_id_seq'
|
||||||
|
|
||||||
=head2 finished
|
=head2 finished
|
||||||
|
|
||||||
|
@ -63,6 +64,12 @@ __PACKAGE__->table("Builds");
|
||||||
is_foreign_key: 1
|
is_foreign_key: 1
|
||||||
is_nullable: 0
|
is_nullable: 0
|
||||||
|
|
||||||
|
=head2 jobset_id
|
||||||
|
|
||||||
|
data_type: 'integer'
|
||||||
|
is_foreign_key: 1
|
||||||
|
is_nullable: 1
|
||||||
|
|
||||||
=head2 job
|
=head2 job
|
||||||
|
|
||||||
data_type: 'text'
|
data_type: 'text'
|
||||||
|
@ -200,7 +207,12 @@ __PACKAGE__->table("Builds");
|
||||||
|
|
||||||
__PACKAGE__->add_columns(
|
__PACKAGE__->add_columns(
|
||||||
"id",
|
"id",
|
||||||
{ data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
|
{
|
||||||
|
data_type => "integer",
|
||||||
|
is_auto_increment => 1,
|
||||||
|
is_nullable => 0,
|
||||||
|
sequence => "builds_id_seq",
|
||||||
|
},
|
||||||
"finished",
|
"finished",
|
||||||
{ data_type => "integer", is_nullable => 0 },
|
{ data_type => "integer", is_nullable => 0 },
|
||||||
"timestamp",
|
"timestamp",
|
||||||
|
@ -209,6 +221,8 @@ __PACKAGE__->add_columns(
|
||||||
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
||||||
"jobset",
|
"jobset",
|
||||||
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
||||||
|
"jobset_id",
|
||||||
|
{ data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
|
||||||
"job",
|
"job",
|
||||||
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
||||||
"nixname",
|
"nixname",
|
||||||
|
@ -451,6 +465,26 @@ Related object: L<Hydra::Schema::Jobsets>
|
||||||
__PACKAGE__->belongs_to(
|
__PACKAGE__->belongs_to(
|
||||||
"jobset",
|
"jobset",
|
||||||
"Hydra::Schema::Jobsets",
|
"Hydra::Schema::Jobsets",
|
||||||
|
{ id => "jobset_id" },
|
||||||
|
{
|
||||||
|
is_deferrable => 0,
|
||||||
|
join_type => "LEFT",
|
||||||
|
on_delete => "CASCADE",
|
||||||
|
on_update => "NO ACTION",
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
=head2 jobset_project_jobset
|
||||||
|
|
||||||
|
Type: belongs_to
|
||||||
|
|
||||||
|
Related object: L<Hydra::Schema::Jobsets>
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
__PACKAGE__->belongs_to(
|
||||||
|
"jobset_project_jobset",
|
||||||
|
"Hydra::Schema::Jobsets",
|
||||||
{ name => "jobset", project => "project" },
|
{ name => "jobset", project => "project" },
|
||||||
{ is_deferrable => 0, on_delete => "NO ACTION", on_update => "CASCADE" },
|
{ is_deferrable => 0, on_delete => "NO ACTION", on_update => "CASCADE" },
|
||||||
);
|
);
|
||||||
|
@ -544,8 +578,8 @@ __PACKAGE__->many_to_many(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2019-08-19 16:12:37
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:32:28
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:VjYbAQwv4THW2VfWQ5ajYQ
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:RvrINOAowDcde8Nd9VD6rQ
|
||||||
|
|
||||||
__PACKAGE__->has_many(
|
__PACKAGE__->has_many(
|
||||||
"dependents",
|
"dependents",
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<CachedBazaarInputs>
|
=head1 TABLE: C<cachedbazaarinputs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("CachedBazaarInputs");
|
__PACKAGE__->table("cachedbazaarinputs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -83,8 +83,8 @@ __PACKAGE__->add_columns(
|
||||||
__PACKAGE__->set_primary_key("uri", "revision");
|
__PACKAGE__->set_primary_key("uri", "revision");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:zvun8uhxwrr7B8EsqBoCjA
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:X8L4C57lMOctdqOKSmfA/g
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom content, and it will be preserved on regeneration
|
# You can replace this text with custom content, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<CachedCVSInputs>
|
=head1 TABLE: C<cachedcvsinputs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("CachedCVSInputs");
|
__PACKAGE__->table("cachedcvsinputs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -99,8 +99,8 @@ __PACKAGE__->add_columns(
|
||||||
__PACKAGE__->set_primary_key("uri", "module", "sha256hash");
|
__PACKAGE__->set_primary_key("uri", "module", "sha256hash");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Vi1qzjW52Lnsl0JSmGzy0w
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:6eQ+i/th+oVZNRiDPd2luA
|
||||||
|
|
||||||
# You can replace this text with custom content, and it will be preserved on regeneration
|
# You can replace this text with custom content, and it will be preserved on regeneration
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<CachedDarcsInputs>
|
=head1 TABLE: C<cacheddarcsinputs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("CachedDarcsInputs");
|
__PACKAGE__->table("cacheddarcsinputs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -90,8 +90,8 @@ __PACKAGE__->add_columns(
|
||||||
__PACKAGE__->set_primary_key("uri", "revision");
|
__PACKAGE__->set_primary_key("uri", "revision");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-09-20 11:08:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Yl1slt3SAizijgu0KUTn0A
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Buwq42sBXQVfYUy01WMyYw
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<CachedGitInputs>
|
=head1 TABLE: C<cachedgitinputs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("CachedGitInputs");
|
__PACKAGE__->table("cachedgitinputs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ __PACKAGE__->add_columns(
|
||||||
__PACKAGE__->set_primary_key("uri", "branch", "revision");
|
__PACKAGE__->set_primary_key("uri", "branch", "revision");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:I4hI02FKRMkw76WV/KBocA
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:0sdK9uQZpx869oqS5thRLw
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<CachedHgInputs>
|
=head1 TABLE: C<cachedhginputs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("CachedHgInputs");
|
__PACKAGE__->table("cachedhginputs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -92,8 +92,8 @@ __PACKAGE__->add_columns(
|
||||||
__PACKAGE__->set_primary_key("uri", "branch", "revision");
|
__PACKAGE__->set_primary_key("uri", "branch", "revision");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:qS/eiiZXmpc7KpTHdtaT7g
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dYfjQ0SJG/mBrsZemAW3zw
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom content, and it will be preserved on regeneration
|
# You can replace this text with custom content, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<CachedPathInputs>
|
=head1 TABLE: C<cachedpathinputs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("CachedPathInputs");
|
__PACKAGE__->table("cachedpathinputs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ __PACKAGE__->add_columns(
|
||||||
__PACKAGE__->set_primary_key("srcpath", "sha256hash");
|
__PACKAGE__->set_primary_key("srcpath", "sha256hash");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:28rja0vR1glJJ15hzVfjsQ
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:oV7tbWLNEMC8byKf9UnAlw
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<CachedSubversionInputs>
|
=head1 TABLE: C<cachedsubversioninputs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("CachedSubversionInputs");
|
__PACKAGE__->table("cachedsubversioninputs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ __PACKAGE__->add_columns(
|
||||||
__PACKAGE__->set_primary_key("uri", "revision");
|
__PACKAGE__->set_primary_key("uri", "revision");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:3qXfnvkOVj25W94bfhQ65w
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:VGt/0HG84eNZr9OIA8jzow
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<FailedPaths>
|
=head1 TABLE: C<failedpaths>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("FailedPaths");
|
__PACKAGE__->table("failedpaths");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -57,8 +57,8 @@ __PACKAGE__->add_columns("path", { data_type => "text", is_nullable => 0 });
|
||||||
__PACKAGE__->set_primary_key("path");
|
__PACKAGE__->set_primary_key("path");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2015-06-10 14:48:16
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:WFgjfjH+szE6Ntcicmaflw
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:jr3XiGO4lWAzqfATbsMwFw
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<Jobs>
|
=head1 TABLE: C<jobs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("Jobs");
|
__PACKAGE__->table("jobs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -47,6 +47,12 @@ __PACKAGE__->table("Jobs");
|
||||||
is_foreign_key: 1
|
is_foreign_key: 1
|
||||||
is_nullable: 0
|
is_nullable: 0
|
||||||
|
|
||||||
|
=head2 jobset_id
|
||||||
|
|
||||||
|
data_type: 'integer'
|
||||||
|
is_foreign_key: 1
|
||||||
|
is_nullable: 1
|
||||||
|
|
||||||
=head2 name
|
=head2 name
|
||||||
|
|
||||||
data_type: 'text'
|
data_type: 'text'
|
||||||
|
@ -59,6 +65,8 @@ __PACKAGE__->add_columns(
|
||||||
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
||||||
"jobset",
|
"jobset",
|
||||||
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
||||||
|
"jobset_id",
|
||||||
|
{ data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
|
||||||
"name",
|
"name",
|
||||||
{ data_type => "text", is_nullable => 0 },
|
{ data_type => "text", is_nullable => 0 },
|
||||||
);
|
);
|
||||||
|
@ -130,6 +138,26 @@ Related object: L<Hydra::Schema::Jobsets>
|
||||||
__PACKAGE__->belongs_to(
|
__PACKAGE__->belongs_to(
|
||||||
"jobset",
|
"jobset",
|
||||||
"Hydra::Schema::Jobsets",
|
"Hydra::Schema::Jobsets",
|
||||||
|
{ id => "jobset_id" },
|
||||||
|
{
|
||||||
|
is_deferrable => 0,
|
||||||
|
join_type => "LEFT",
|
||||||
|
on_delete => "CASCADE",
|
||||||
|
on_update => "NO ACTION",
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
=head2 jobset_project_jobset
|
||||||
|
|
||||||
|
Type: belongs_to
|
||||||
|
|
||||||
|
Related object: L<Hydra::Schema::Jobsets>
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
__PACKAGE__->belongs_to(
|
||||||
|
"jobset_project_jobset",
|
||||||
|
"Hydra::Schema::Jobsets",
|
||||||
{ name => "jobset", project => "project" },
|
{ name => "jobset", project => "project" },
|
||||||
{ is_deferrable => 0, on_delete => "CASCADE", on_update => "CASCADE" },
|
{ is_deferrable => 0, on_delete => "CASCADE", on_update => "CASCADE" },
|
||||||
);
|
);
|
||||||
|
@ -169,7 +197,7 @@ __PACKAGE__->has_many(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07043 @ 2015-07-30 16:52:20
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:30:58
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:vDAo9bzLca+QWfhOb9OLMg
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dFusVjxb423gIEoadAw9sw
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<JobsetEvalInputs>
|
=head1 TABLE: C<jobsetevalinputs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("JobsetEvalInputs");
|
__PACKAGE__->table("jobsetevalinputs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -166,8 +166,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:1Dp8B58leBLh4GK0GPw2zg
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:/cFQGBLhvpmBO1UJztgIAg
|
||||||
|
|
||||||
my %hint = (
|
my %hint = (
|
||||||
columns => [
|
columns => [
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<JobsetEvalMembers>
|
=head1 TABLE: C<jobsetevalmembers>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("JobsetEvalMembers");
|
__PACKAGE__->table("jobsetevalmembers");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -110,8 +110,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ccPNQe/QnSjTAC3uGWe8Ng
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:T+dJFh/sDO8WsasqYVLRSQ
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom content, and it will be preserved on regeneration
|
# You can replace this text with custom content, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<JobsetEvals>
|
=head1 TABLE: C<jobsetevals>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("JobsetEvals");
|
__PACKAGE__->table("jobsetevals");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ __PACKAGE__->table("JobsetEvals");
|
||||||
data_type: 'integer'
|
data_type: 'integer'
|
||||||
is_auto_increment: 1
|
is_auto_increment: 1
|
||||||
is_nullable: 0
|
is_nullable: 0
|
||||||
|
sequence: 'jobsetevals_id_seq'
|
||||||
|
|
||||||
=head2 project
|
=head2 project
|
||||||
|
|
||||||
|
@ -97,7 +98,12 @@ __PACKAGE__->table("JobsetEvals");
|
||||||
|
|
||||||
__PACKAGE__->add_columns(
|
__PACKAGE__->add_columns(
|
||||||
"id",
|
"id",
|
||||||
{ data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
|
{
|
||||||
|
data_type => "integer",
|
||||||
|
is_auto_increment => 1,
|
||||||
|
is_nullable => 0,
|
||||||
|
sequence => "jobsetevals_id_seq",
|
||||||
|
},
|
||||||
"project",
|
"project",
|
||||||
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
||||||
"jobset",
|
"jobset",
|
||||||
|
@ -195,8 +201,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2019-05-11 00:16:10
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-09 15:21:11
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:XwlJFCJiS0LHsLg2fFqfUg
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Ar6GRni8AcAQmuZyg6tFKw
|
||||||
|
|
||||||
__PACKAGE__->has_many(
|
__PACKAGE__->has_many(
|
||||||
"buildIds",
|
"buildIds",
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<JobsetInputAlts>
|
=head1 TABLE: C<jobsetinputalts>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("JobsetInputAlts");
|
__PACKAGE__->table("jobsetinputalts");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:UUO37lIuEYm0GiR92m/fyA
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:nh8dQDL9FtgzXcwjDufDMQ
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<JobsetInputs>
|
=head1 TABLE: C<jobsetinputs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("JobsetInputs");
|
__PACKAGE__->table("jobsetinputs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -130,28 +130,9 @@ __PACKAGE__->has_many(
|
||||||
undef,
|
undef,
|
||||||
);
|
);
|
||||||
|
|
||||||
=head2 jobsets
|
|
||||||
|
|
||||||
Type: has_many
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:5uKwEhDXso4IR1TFmwRxiA
|
||||||
Related object: L<Hydra::Schema::Jobsets>
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
__PACKAGE__->has_many(
|
|
||||||
"jobsets",
|
|
||||||
"Hydra::Schema::Jobsets",
|
|
||||||
{
|
|
||||||
"foreign.name" => "self.jobset",
|
|
||||||
"foreign.nixexprinput" => "self.name",
|
|
||||||
"foreign.project" => "self.project",
|
|
||||||
},
|
|
||||||
undef,
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-10-08 13:06:15
|
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+mZZqLjQNwblb/EWW1alLQ
|
|
||||||
|
|
||||||
my %hint = (
|
my %hint = (
|
||||||
relations => {
|
relations => {
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<JobsetRenames>
|
=head1 TABLE: C<jobsetrenames>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("JobsetRenames");
|
__PACKAGE__->table("jobsetrenames");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -110,8 +110,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2014-04-23 23:13:51
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:SBpKWF9swFc9T1Uc0VFlgA
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:eOQbJ2O/p0G1317m3IC/KA
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,20 +27,26 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<Jobsets>
|
=head1 TABLE: C<jobsets>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("Jobsets");
|
__PACKAGE__->table("jobsets");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
=head2 name
|
=head2 name
|
||||||
|
|
||||||
data_type: 'text'
|
data_type: 'text'
|
||||||
is_foreign_key: 1
|
|
||||||
is_nullable: 0
|
is_nullable: 0
|
||||||
|
|
||||||
|
=head2 id
|
||||||
|
|
||||||
|
data_type: 'integer'
|
||||||
|
is_auto_increment: 1
|
||||||
|
is_nullable: 0
|
||||||
|
sequence: 'jobsets_id_seq'
|
||||||
|
|
||||||
=head2 project
|
=head2 project
|
||||||
|
|
||||||
data_type: 'text'
|
data_type: 'text'
|
||||||
|
@ -55,7 +61,6 @@ __PACKAGE__->table("Jobsets");
|
||||||
=head2 nixexprinput
|
=head2 nixexprinput
|
||||||
|
|
||||||
data_type: 'text'
|
data_type: 'text'
|
||||||
is_foreign_key: 1
|
|
||||||
is_nullable: 1
|
is_nullable: 1
|
||||||
|
|
||||||
=head2 nixexprpath
|
=head2 nixexprpath
|
||||||
|
@ -154,13 +159,20 @@ __PACKAGE__->table("Jobsets");
|
||||||
|
|
||||||
__PACKAGE__->add_columns(
|
__PACKAGE__->add_columns(
|
||||||
"name",
|
"name",
|
||||||
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
{ data_type => "text", is_nullable => 0 },
|
||||||
|
"id",
|
||||||
|
{
|
||||||
|
data_type => "integer",
|
||||||
|
is_auto_increment => 1,
|
||||||
|
is_nullable => 0,
|
||||||
|
sequence => "jobsets_id_seq",
|
||||||
|
},
|
||||||
"project",
|
"project",
|
||||||
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },
|
||||||
"description",
|
"description",
|
||||||
{ data_type => "text", is_nullable => 1 },
|
{ data_type => "text", is_nullable => 1 },
|
||||||
"nixexprinput",
|
"nixexprinput",
|
||||||
{ data_type => "text", is_foreign_key => 1, is_nullable => 1 },
|
{ data_type => "text", is_nullable => 1 },
|
||||||
"nixexprpath",
|
"nixexprpath",
|
||||||
{ data_type => "text", is_nullable => 1 },
|
{ data_type => "text", is_nullable => 1 },
|
||||||
"errormsg",
|
"errormsg",
|
||||||
|
@ -211,6 +223,20 @@ __PACKAGE__->add_columns(
|
||||||
|
|
||||||
__PACKAGE__->set_primary_key("project", "name");
|
__PACKAGE__->set_primary_key("project", "name");
|
||||||
|
|
||||||
|
=head1 UNIQUE CONSTRAINTS
|
||||||
|
|
||||||
|
=head2 C<jobsets_id_unique>
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item * L</id>
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
__PACKAGE__->add_unique_constraint("jobsets_id_unique", ["id"]);
|
||||||
|
|
||||||
=head1 RELATIONS
|
=head1 RELATIONS
|
||||||
|
|
||||||
=head2 buildmetrics
|
=head2 buildmetrics
|
||||||
|
@ -231,7 +257,7 @@ __PACKAGE__->has_many(
|
||||||
undef,
|
undef,
|
||||||
);
|
);
|
||||||
|
|
||||||
=head2 builds
|
=head2 builds_jobset_ids
|
||||||
|
|
||||||
Type: has_many
|
Type: has_many
|
||||||
|
|
||||||
|
@ -240,7 +266,22 @@ Related object: L<Hydra::Schema::Builds>
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->has_many(
|
__PACKAGE__->has_many(
|
||||||
"builds",
|
"builds_jobset_ids",
|
||||||
|
"Hydra::Schema::Builds",
|
||||||
|
{ "foreign.jobset_id" => "self.id" },
|
||||||
|
undef,
|
||||||
|
);
|
||||||
|
|
||||||
|
=head2 builds_project_jobsets
|
||||||
|
|
||||||
|
Type: has_many
|
||||||
|
|
||||||
|
Related object: L<Hydra::Schema::Builds>
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
__PACKAGE__->has_many(
|
||||||
|
"builds_project_jobsets",
|
||||||
"Hydra::Schema::Builds",
|
"Hydra::Schema::Builds",
|
||||||
{
|
{
|
||||||
"foreign.jobset" => "self.name",
|
"foreign.jobset" => "self.name",
|
||||||
|
@ -249,7 +290,7 @@ __PACKAGE__->has_many(
|
||||||
undef,
|
undef,
|
||||||
);
|
);
|
||||||
|
|
||||||
=head2 jobs
|
=head2 jobs_jobset_ids
|
||||||
|
|
||||||
Type: has_many
|
Type: has_many
|
||||||
|
|
||||||
|
@ -258,7 +299,22 @@ Related object: L<Hydra::Schema::Jobs>
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->has_many(
|
__PACKAGE__->has_many(
|
||||||
"jobs",
|
"jobs_jobset_ids",
|
||||||
|
"Hydra::Schema::Jobs",
|
||||||
|
{ "foreign.jobset_id" => "self.id" },
|
||||||
|
undef,
|
||||||
|
);
|
||||||
|
|
||||||
|
=head2 jobs_project_jobsets
|
||||||
|
|
||||||
|
Type: has_many
|
||||||
|
|
||||||
|
Related object: L<Hydra::Schema::Jobs>
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
__PACKAGE__->has_many(
|
||||||
|
"jobs_project_jobsets",
|
||||||
"Hydra::Schema::Jobs",
|
"Hydra::Schema::Jobs",
|
||||||
{
|
{
|
||||||
"foreign.jobset" => "self.name",
|
"foreign.jobset" => "self.name",
|
||||||
|
@ -285,26 +341,6 @@ __PACKAGE__->has_many(
|
||||||
undef,
|
undef,
|
||||||
);
|
);
|
||||||
|
|
||||||
=head2 jobsetinput
|
|
||||||
|
|
||||||
Type: belongs_to
|
|
||||||
|
|
||||||
Related object: L<Hydra::Schema::JobsetInputs>
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
__PACKAGE__->belongs_to(
|
|
||||||
"jobsetinput",
|
|
||||||
"Hydra::Schema::JobsetInputs",
|
|
||||||
{ jobset => "name", name => "nixexprinput", project => "project" },
|
|
||||||
{
|
|
||||||
is_deferrable => 0,
|
|
||||||
join_type => "LEFT",
|
|
||||||
on_delete => "NO ACTION",
|
|
||||||
on_update => "NO ACTION",
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
=head2 jobsetinputs
|
=head2 jobsetinputs
|
||||||
|
|
||||||
Type: has_many
|
Type: has_many
|
||||||
|
@ -372,8 +408,49 @@ __PACKAGE__->has_many(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2019-05-11 00:03:52
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-09 15:32:17
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:UVG1D59bXaQ1TUEF237tXQ
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:P8+t7rgpOqkGwRdM2b+3Bw
|
||||||
|
|
||||||
|
|
||||||
|
=head2 builds
|
||||||
|
|
||||||
|
Type: has_many
|
||||||
|
|
||||||
|
Related object: L<Hydra::Schema::Builds>
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
__PACKAGE__->has_many(
|
||||||
|
"builds",
|
||||||
|
"Hydra::Schema::Builds",
|
||||||
|
{
|
||||||
|
"foreign.jobset" => "self.name",
|
||||||
|
"foreign.project" => "self.project",
|
||||||
|
},
|
||||||
|
undef,
|
||||||
|
);
|
||||||
|
|
||||||
|
=head2 jobs
|
||||||
|
|
||||||
|
Type: has_many
|
||||||
|
|
||||||
|
Related object: L<Hydra::Schema::Jobs>
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
__PACKAGE__->has_many(
|
||||||
|
"jobs",
|
||||||
|
"Hydra::Schema::Jobs",
|
||||||
|
{
|
||||||
|
"foreign.jobset" => "self.name",
|
||||||
|
"foreign.project" => "self.project",
|
||||||
|
},
|
||||||
|
undef,
|
||||||
|
);
|
||||||
|
|
||||||
|
__PACKAGE__->add_column(
|
||||||
|
"+id" => { retrieve_on_insert => 1 }
|
||||||
|
);
|
||||||
|
|
||||||
my %hint = (
|
my %hint = (
|
||||||
columns => [
|
columns => [
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<NewsItems>
|
=head1 TABLE: C<newsitems>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("NewsItems");
|
__PACKAGE__->table("newsitems");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ __PACKAGE__->table("NewsItems");
|
||||||
data_type: 'integer'
|
data_type: 'integer'
|
||||||
is_auto_increment: 1
|
is_auto_increment: 1
|
||||||
is_nullable: 0
|
is_nullable: 0
|
||||||
|
sequence: 'newsitems_id_seq'
|
||||||
|
|
||||||
=head2 contents
|
=head2 contents
|
||||||
|
|
||||||
|
@ -61,7 +62,12 @@ __PACKAGE__->table("NewsItems");
|
||||||
|
|
||||||
__PACKAGE__->add_columns(
|
__PACKAGE__->add_columns(
|
||||||
"id",
|
"id",
|
||||||
{ data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
|
{
|
||||||
|
data_type => "integer",
|
||||||
|
is_auto_increment => 1,
|
||||||
|
is_nullable => 0,
|
||||||
|
sequence => "newsitems_id_seq",
|
||||||
|
},
|
||||||
"contents",
|
"contents",
|
||||||
{ data_type => "text", is_nullable => 0 },
|
{ data_type => "text", is_nullable => 0 },
|
||||||
"createtime",
|
"createtime",
|
||||||
|
@ -100,7 +106,7 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:3CRNsvd+YnZp9c80tuZREQ
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:r6vX8VG/+NQraIVKFgHzxQ
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<NrBuilds>
|
=head1 TABLE: C<nrbuilds>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("NrBuilds");
|
__PACKAGE__->table("nrbuilds");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -67,8 +67,8 @@ __PACKAGE__->add_columns(
|
||||||
__PACKAGE__->set_primary_key("what");
|
__PACKAGE__->set_primary_key("what");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-08-12 17:59:18
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:CK8eJGC803nGj0wnete9xg
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:qv1I8Wu7KXHAs+pyBn2ofA
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<ProjectMembers>
|
=head1 TABLE: C<projectmembers>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("ProjectMembers");
|
__PACKAGE__->table("projectmembers");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -103,8 +103,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:imPoiaitrTbX0vVNlF6dPA
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:e/hYmoNmcEUoGhRqtwdyQw
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom content, and it will be preserved on regeneration
|
# You can replace this text with custom content, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<Projects>
|
=head1 TABLE: C<projects>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("Projects");
|
__PACKAGE__->table("projects");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -303,8 +303,8 @@ Composing rels: L</projectmembers> -> username
|
||||||
__PACKAGE__->many_to_many("usernames", "projectmembers", "username");
|
__PACKAGE__->many_to_many("usernames", "projectmembers", "username");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07043 @ 2016-03-11 10:39:17
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:1ats3brIVhRTWLToIYSoaQ
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:pcF/8351zyo9VL6N5eimdQ
|
||||||
|
|
||||||
my %hint = (
|
my %hint = (
|
||||||
columns => [
|
columns => [
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<ReleaseMembers>
|
=head1 TABLE: C<releasemembers>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("ReleaseMembers");
|
__PACKAGE__->table("releasemembers");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7M7WPlGQT6rNHKJ+82/KSA
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:k4z2YeB4gRAeAP6hmR93sQ
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<Releases>
|
=head1 TABLE: C<releases>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("Releases");
|
__PACKAGE__->table("releases");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ __PACKAGE__->has_many(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:qISBiwvboB8dIdinaE45mg
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:b4M/tHOhsy234tgTf+wqjQ
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<SchemaVersion>
|
=head1 TABLE: C<schemaversion>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("SchemaVersion");
|
__PACKAGE__->table("schemaversion");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -45,8 +45,8 @@ __PACKAGE__->table("SchemaVersion");
|
||||||
__PACKAGE__->add_columns("version", { data_type => "integer", is_nullable => 0 });
|
__PACKAGE__->add_columns("version", { data_type => "integer", is_nullable => 0 });
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:08/7gbEQp1TqBiWFJXVY0w
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:2wy4FsRYVVo2RTCWXcmgvg
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<StarredJobs>
|
=head1 TABLE: C<starredjobs>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("StarredJobs");
|
__PACKAGE__->table("starredjobs");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -153,8 +153,8 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-10-14 15:46:29
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:naj5aKWuw8hLE6klmvW9Eg
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:fw4FfzmOhzDk0ZoSuNr2ww
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<SystemStatus>
|
=head1 TABLE: C<systemstatus>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("SystemStatus");
|
__PACKAGE__->table("systemstatus");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -67,8 +67,8 @@ __PACKAGE__->add_columns(
|
||||||
__PACKAGE__->set_primary_key("what");
|
__PACKAGE__->set_primary_key("what");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07043 @ 2015-07-30 16:01:22
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:JCYi4+HwM22iucdFkhBjMg
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:GeXpTVktMXjHENa/P3qOxw
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
# You can replace this text with custom code or comments, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<SystemTypes>
|
=head1 TABLE: C<systemtypes>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("SystemTypes");
|
__PACKAGE__->table("systemtypes");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ __PACKAGE__->add_columns(
|
||||||
__PACKAGE__->set_primary_key("system");
|
__PACKAGE__->set_primary_key("system");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:8cC34cEw9T3+x+7uRs4KHQ
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:fYeKQQSS5J8rjO3t+Hbz0g
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<UriRevMapper>
|
=head1 TABLE: C<urirevmapper>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("UriRevMapper");
|
__PACKAGE__->table("urirevmapper");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -67,8 +67,8 @@ __PACKAGE__->add_columns(
|
||||||
__PACKAGE__->set_primary_key("baseuri");
|
__PACKAGE__->set_primary_key("baseuri");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:G2GAF/Rb7cRkRegH94LwIA
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:FOg2/BVJK3yg8MAYMrqZOQ
|
||||||
|
|
||||||
|
|
||||||
# You can replace this text with custom content, and it will be preserved on regeneration
|
# You can replace this text with custom content, and it will be preserved on regeneration
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<UserRoles>
|
=head1 TABLE: C<userroles>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("UserRoles");
|
__PACKAGE__->table("userroles");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ __PACKAGE__->belongs_to(
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:aS+ivlFpndqIv8U578zz9A
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:LUw2PDFvUHs0E0UZ3oHFxw
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -27,11 +27,11 @@ use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
|
||||||
|
|
||||||
=head1 TABLE: C<Users>
|
=head1 TABLE: C<users>
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
__PACKAGE__->table("Users");
|
__PACKAGE__->table("users");
|
||||||
|
|
||||||
=head1 ACCESSORS
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
@ -192,8 +192,8 @@ Composing rels: L</projectmembers> -> project
|
||||||
__PACKAGE__->many_to_many("projects", "projectmembers", "project");
|
__PACKAGE__->many_to_many("projects", "projectmembers", "project");
|
||||||
|
|
||||||
|
|
||||||
# Created by DBIx::Class::Schema::Loader v0.07043 @ 2016-05-27 11:32:14
|
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
|
||||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Az1+V+ztJoWUt50NLQR3xg
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:4/WZ95asbnGmK+nEHb4sLQ
|
||||||
|
|
||||||
my %hint = (
|
my %hint = (
|
||||||
columns => [
|
columns => [
|
||||||
|
|
|
@ -3,6 +3,7 @@ EXTRA_DIST = \
|
||||||
hydra-eval-guile-jobs.in
|
hydra-eval-guile-jobs.in
|
||||||
|
|
||||||
distributable_scripts = \
|
distributable_scripts = \
|
||||||
|
hydra-backfill-ids \
|
||||||
hydra-init \
|
hydra-init \
|
||||||
hydra-eval-jobset \
|
hydra-eval-jobset \
|
||||||
hydra-server \
|
hydra-server \
|
||||||
|
|
164
src/script/hydra-backfill-ids
Executable file
164
src/script/hydra-backfill-ids
Executable file
|
@ -0,0 +1,164 @@
|
||||||
|
#! /usr/bin/env perl
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use utf8;
|
||||||
|
use Hydra::Model::DB;
|
||||||
|
|
||||||
|
STDOUT->autoflush();
|
||||||
|
STDERR->autoflush(1);
|
||||||
|
binmode STDERR, ":encoding(utf8)";
|
||||||
|
|
||||||
|
my $db = Hydra::Model::DB->new();
|
||||||
|
my $vacuum = $db->storage->dbh->prepare("VACUUM;");
|
||||||
|
|
||||||
|
my $dryRun = defined $ENV{'HYDRA_DRY_RUN'};
|
||||||
|
|
||||||
|
my $batchSize = 10000;
|
||||||
|
my $iterationsPerVacuum = 500;
|
||||||
|
|
||||||
|
sub backfillJobsJobsetId {
|
||||||
|
my ($skipLocked) = @_;
|
||||||
|
my $logPrefix;
|
||||||
|
|
||||||
|
if ($skipLocked) {
|
||||||
|
$logPrefix = "(pass 1/2)";
|
||||||
|
} else {
|
||||||
|
$logPrefix = "(pass 2/2)";
|
||||||
|
}
|
||||||
|
|
||||||
|
print STDERR "$logPrefix Backfilling Jobs records where jobset_id is NULL...\n";
|
||||||
|
|
||||||
|
my $totalToGoSth = $db->storage->dbh->prepare(<<QUERY);
|
||||||
|
SELECT COUNT(*) FROM jobs WHERE jobset_id IS NULL
|
||||||
|
QUERY
|
||||||
|
|
||||||
|
$totalToGoSth->execute();
|
||||||
|
my ($totalToGo) = $totalToGoSth->fetchrow_array;
|
||||||
|
|
||||||
|
my $skipLockedStmt = $skipLocked ? "FOR UPDATE SKIP LOCKED" : "";
|
||||||
|
my $update10kJobs = $db->storage->dbh->prepare(<<QUERY);
|
||||||
|
UPDATE jobs
|
||||||
|
SET jobset_id = (
|
||||||
|
SELECT jobsets.id
|
||||||
|
FROM jobsets
|
||||||
|
WHERE jobsets.name = jobs.jobset
|
||||||
|
AND jobsets.project = jobs.project
|
||||||
|
)
|
||||||
|
WHERE (jobs.project, jobs.jobset, jobs.name) in (
|
||||||
|
SELECT jobsprime.project, jobsprime.jobset, jobsprime.name
|
||||||
|
FROM jobs jobsprime
|
||||||
|
WHERE jobsprime.jobset_id IS NULL
|
||||||
|
$skipLockedStmt
|
||||||
|
LIMIT ?
|
||||||
|
);
|
||||||
|
QUERY
|
||||||
|
|
||||||
|
print STDERR "$logPrefix Total Jobs records without a jobset_id: $totalToGo\n";
|
||||||
|
|
||||||
|
my $iteration = 0;
|
||||||
|
my $affected;
|
||||||
|
do {
|
||||||
|
$iteration++;
|
||||||
|
$affected = $update10kJobs->execute($batchSize);
|
||||||
|
print STDERR "$logPrefix (batch #$iteration; $totalToGo remaining) Jobs.jobset_id: affected $affected rows...\n";
|
||||||
|
$totalToGo -= $affected;
|
||||||
|
|
||||||
|
if ($iteration % $iterationsPerVacuum == 0) {
|
||||||
|
print STDERR "$logPrefix (batch #$iteration) Vacuuming...\n";
|
||||||
|
$vacuum->execute();
|
||||||
|
}
|
||||||
|
} while ($affected > 0);
|
||||||
|
|
||||||
|
|
||||||
|
if ($skipLocked) {
|
||||||
|
backfillJobsJobsetId(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub backfillBuildsJobsetId {
|
||||||
|
my ($skipLocked) = @_;
|
||||||
|
my $logPrefix;
|
||||||
|
|
||||||
|
if ($skipLocked) {
|
||||||
|
$logPrefix = "(pass 1/2)";
|
||||||
|
print STDERR "$logPrefix Backfilling unlocked Builds records where jobset_id is NULL...\n";
|
||||||
|
} else {
|
||||||
|
$logPrefix = "(pass 2/2)";
|
||||||
|
print STDERR "$logPrefix Backfilling all Builds records where jobset_id is NULL...\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
my $skipLockedStmt = $skipLocked ? "FOR UPDATE SKIP LOCKED" : "";
|
||||||
|
my $update10kBuilds = $db->storage->dbh->prepare(<<"QUERY");
|
||||||
|
WITH updateprogress AS (
|
||||||
|
UPDATE builds
|
||||||
|
SET jobset_id = (
|
||||||
|
SELECT jobsets.id
|
||||||
|
FROM jobsets
|
||||||
|
WHERE jobsets.name = builds.jobset
|
||||||
|
AND jobsets.project = builds.project
|
||||||
|
)
|
||||||
|
WHERE builds.id in (
|
||||||
|
SELECT buildprime.id
|
||||||
|
FROM builds buildprime
|
||||||
|
WHERE buildprime.jobset_id IS NULL
|
||||||
|
AND buildprime.id >= ?
|
||||||
|
ORDER BY buildprime.id
|
||||||
|
$skipLockedStmt
|
||||||
|
LIMIT ?
|
||||||
|
)
|
||||||
|
RETURNING id
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
count(*) AS affected,
|
||||||
|
max(updateprogress.id) AS highest_id
|
||||||
|
FROM updateprogress;
|
||||||
|
|
||||||
|
QUERY
|
||||||
|
|
||||||
|
my $lowestNullIdSth = $db->storage->dbh->prepare(<<QUERY);
|
||||||
|
SELECT id FROM builds WHERE jobset_id IS NULL ORDER BY id LIMIT 1
|
||||||
|
QUERY
|
||||||
|
$lowestNullIdSth->execute();
|
||||||
|
my ($highestId) = $lowestNullIdSth->fetchrow_array;
|
||||||
|
|
||||||
|
my $totalToGoSth = $db->storage->dbh->prepare(<<QUERY);
|
||||||
|
SELECT COUNT(*) FROM builds WHERE jobset_id IS NULL AND id >= ?
|
||||||
|
QUERY
|
||||||
|
$totalToGoSth->execute($highestId);
|
||||||
|
my ($totalToGo) = $totalToGoSth->fetchrow_array;
|
||||||
|
|
||||||
|
print STDERR "$logPrefix Total Builds records without a jobset_id: $totalToGo, starting at $highestId\n";
|
||||||
|
|
||||||
|
my $iteration = 0;
|
||||||
|
my $affected;
|
||||||
|
do {
|
||||||
|
my $previousHighId = $highestId;
|
||||||
|
$iteration++;
|
||||||
|
$update10kBuilds->execute($highestId, $batchSize);
|
||||||
|
($affected, $highestId) = $update10kBuilds->fetchrow_array;
|
||||||
|
|
||||||
|
print STDERR "$logPrefix (batch #$iteration; $totalToGo remaining) Builds.jobset_id: affected $affected rows; max ID: $previousHighId -> $highestId\n";
|
||||||
|
$totalToGo -= $affected;
|
||||||
|
|
||||||
|
if ($iteration % $iterationsPerVacuum == 0) {
|
||||||
|
print STDERR "$logPrefix (batch #$iteration) Vacuuming...\n";
|
||||||
|
$vacuum->execute();
|
||||||
|
}
|
||||||
|
} while ($affected > 0);
|
||||||
|
|
||||||
|
if ($skipLocked) {
|
||||||
|
backfillBuildsJobsetId(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
die "syntax: $0\n" unless @ARGV == 0;
|
||||||
|
|
||||||
|
print STDERR "Beginning with a VACUUM\n";
|
||||||
|
$vacuum->execute();
|
||||||
|
|
||||||
|
backfillJobsJobsetId(1);
|
||||||
|
backfillBuildsJobsetId(1);
|
||||||
|
|
||||||
|
print STDERR "Ending with a VACUUM\n";
|
||||||
|
$vacuum->execute();
|
|
@ -426,7 +426,12 @@ sub checkBuild {
|
||||||
my $build;
|
my $build;
|
||||||
|
|
||||||
txn_do($db, sub {
|
txn_do($db, sub {
|
||||||
my $job = $jobset->jobs->update_or_create({ name => $jobName });
|
my $job = $jobset->jobs->update_or_create({
|
||||||
|
name => $jobName,
|
||||||
|
jobset_id => $jobset->id,
|
||||||
|
project => $jobset->project,
|
||||||
|
jobset => $jobset->name,
|
||||||
|
});
|
||||||
|
|
||||||
# Don't add a build that has already been scheduled for this
|
# Don't add a build that has already been scheduled for this
|
||||||
# job, or has been built but is still a "current" build for
|
# job, or has been built but is still a "current" build for
|
||||||
|
@ -473,6 +478,9 @@ sub checkBuild {
|
||||||
# Add the build to the database.
|
# Add the build to the database.
|
||||||
$build = $job->builds->create(
|
$build = $job->builds->create(
|
||||||
{ timestamp => $time
|
{ timestamp => $time
|
||||||
|
, project => $jobset->project
|
||||||
|
, jobset => $jobset->name
|
||||||
|
, jobset_id => $jobset->id
|
||||||
, description => null($buildInfo->{description})
|
, description => null($buildInfo->{description})
|
||||||
, license => null($buildInfo->{license})
|
, license => null($buildInfo->{license})
|
||||||
, homepage => null($buildInfo->{homepage})
|
, homepage => null($buildInfo->{homepage})
|
||||||
|
|
|
@ -44,6 +44,17 @@ my @versions = $db->resultset('SchemaVersion')->all;
|
||||||
die "couldn't get Hydra schema version!" if scalar @versions != 1;
|
die "couldn't get Hydra schema version!" if scalar @versions != 1;
|
||||||
my $schemaVersion = $versions[0]->version;
|
my $schemaVersion = $versions[0]->version;
|
||||||
|
|
||||||
|
if ($schemaVersion <= 60) {
|
||||||
|
print STDERR <<QUOTE;
|
||||||
|
WARNING: Schema version 62 and 63 make nullable jobset_id fields on
|
||||||
|
Builds and Jobs non-nullable. On big Hydra servers, this
|
||||||
|
migration will take many hours. Because of that, the
|
||||||
|
migration is not automatic, and must be performed manually.
|
||||||
|
|
||||||
|
To backfill these IDs, run: hydra-fill-ids
|
||||||
|
QUOTE
|
||||||
|
}
|
||||||
|
|
||||||
for (my $n = $schemaVersion; $n < $maxSchemaVersion; $n++) {
|
for (my $n = $schemaVersion; $n < $maxSchemaVersion; $n++) {
|
||||||
my $m = $n + 1;
|
my $m = $n + 1;
|
||||||
print STDERR "upgrading Hydra schema from version $n to $m\n";
|
print STDERR "upgrading Hydra schema from version $n to $m\n";
|
||||||
|
|
|
@ -2,7 +2,6 @@ sqldir = $(libexecdir)/hydra/sql
|
||||||
nobase_dist_sql_DATA = \
|
nobase_dist_sql_DATA = \
|
||||||
hydra-postgresql.sql \
|
hydra-postgresql.sql \
|
||||||
hydra.sql \
|
hydra.sql \
|
||||||
hydra-sqlite.sql \
|
|
||||||
test.sql \
|
test.sql \
|
||||||
upgrade-*.sql \
|
upgrade-*.sql \
|
||||||
update-dbix.pl
|
update-dbix.pl
|
||||||
|
@ -10,10 +9,5 @@ nobase_dist_sql_DATA = \
|
||||||
hydra-postgresql.sql: hydra.sql
|
hydra-postgresql.sql: hydra.sql
|
||||||
cpp -P -E -traditional-cpp -DPOSTGRESQL hydra.sql > $@ || rm -f $@
|
cpp -P -E -traditional-cpp -DPOSTGRESQL hydra.sql > $@ || rm -f $@
|
||||||
|
|
||||||
hydra-sqlite.sql: hydra.sql
|
update-dbix: hydra-postgresql.sql
|
||||||
cpp -P -E -traditional-cpp -DSQLITE hydra.sql > $@ || rm -f $@
|
./update-dbix-harness.sh
|
||||||
|
|
||||||
update-dbix: hydra-sqlite.sql
|
|
||||||
rm -f tmp.sqlite
|
|
||||||
sqlite3 tmp.sqlite < hydra-sqlite.sql
|
|
||||||
perl -I ../lib -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:../lib update-dbix.pl
|
|
||||||
|
|
|
@ -52,6 +52,7 @@ create table ProjectMembers (
|
||||||
-- describing build jobs.
|
-- describing build jobs.
|
||||||
create table Jobsets (
|
create table Jobsets (
|
||||||
name text not null,
|
name text not null,
|
||||||
|
id serial not null,
|
||||||
project text not null,
|
project text not null,
|
||||||
description text,
|
description text,
|
||||||
nixExprInput text, -- name of the jobsetInput containing the Nix or Guix expression
|
nixExprInput text, -- name of the jobsetInput containing the Nix or Guix expression
|
||||||
|
@ -76,7 +77,8 @@ create table Jobsets (
|
||||||
check ((type = 0) = (nixExprInput is not null and nixExprPath is not null)),
|
check ((type = 0) = (nixExprInput is not null and nixExprPath is not null)),
|
||||||
check ((type = 1) = (flake is not null)),
|
check ((type = 1) = (flake is not null)),
|
||||||
primary key (project, name),
|
primary key (project, name),
|
||||||
foreign key (project) references Projects(name) on delete cascade on update cascade
|
foreign key (project) references Projects(name) on delete cascade on update cascade,
|
||||||
|
constraint Jobsets_id_unique UNIQUE(id)
|
||||||
#ifdef SQLITE
|
#ifdef SQLITE
|
||||||
,
|
,
|
||||||
foreign key (project, name, nixExprInput) references JobsetInputs(project, jobset, name)
|
foreign key (project, name, nixExprInput) references JobsetInputs(project, jobset, name)
|
||||||
|
@ -144,9 +146,11 @@ create table JobsetInputAlts (
|
||||||
create table Jobs (
|
create table Jobs (
|
||||||
project text not null,
|
project text not null,
|
||||||
jobset text not null,
|
jobset text not null,
|
||||||
|
jobset_id integer null,
|
||||||
name text not null,
|
name text not null,
|
||||||
|
|
||||||
primary key (project, jobset, name),
|
primary key (project, jobset, name),
|
||||||
|
foreign key (jobset_id) references Jobsets(id) on delete cascade,
|
||||||
foreign key (project) references Projects(name) on delete cascade on update cascade,
|
foreign key (project) references Projects(name) on delete cascade on update cascade,
|
||||||
foreign key (project, jobset) references Jobsets(project, name) on delete cascade on update cascade
|
foreign key (project, jobset) references Jobsets(project, name) on delete cascade on update cascade
|
||||||
);
|
);
|
||||||
|
@ -166,6 +170,7 @@ create table Builds (
|
||||||
-- Info about the inputs.
|
-- Info about the inputs.
|
||||||
project text not null,
|
project text not null,
|
||||||
jobset text not null,
|
jobset text not null,
|
||||||
|
jobset_id integer null,
|
||||||
job text not null,
|
job text not null,
|
||||||
|
|
||||||
-- Info about the build result.
|
-- Info about the build result.
|
||||||
|
@ -232,6 +237,7 @@ create table Builds (
|
||||||
check (finished = 0 or (stoptime is not null and stoptime != 0)),
|
check (finished = 0 or (stoptime is not null and stoptime != 0)),
|
||||||
check (finished = 0 or (starttime is not null and starttime != 0)),
|
check (finished = 0 or (starttime is not null and starttime != 0)),
|
||||||
|
|
||||||
|
foreign key (jobset_id) references Jobsets(id) on delete cascade,
|
||||||
foreign key (project) references Projects(name) on update cascade,
|
foreign key (project) references Projects(name) on update cascade,
|
||||||
foreign key (project, jobset) references Jobsets(project, name) on update cascade,
|
foreign key (project, jobset) references Jobsets(project, name) on update cascade,
|
||||||
foreign key (project, jobset, job) references Jobs(project, jobset, name) on update cascade
|
foreign key (project, jobset, job) references Jobs(project, jobset, name) on update cascade
|
||||||
|
|
40
src/sql/update-dbix-harness.sh
Executable file
40
src/sql/update-dbix-harness.sh
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
readonly scratch=$(mktemp -d -t tmp.XXXXXXXXXX)
|
||||||
|
|
||||||
|
readonly socket=$scratch/socket
|
||||||
|
readonly data=$scratch/data
|
||||||
|
readonly dbname=hydra-update-dbix
|
||||||
|
|
||||||
|
function finish {
|
||||||
|
set +e
|
||||||
|
pg_ctl -D "$data" \
|
||||||
|
-o "-F -h '' -k \"$socket\"" \
|
||||||
|
-w stop -m immediate
|
||||||
|
|
||||||
|
if [ -f "$data/postmaster.pid" ]; then
|
||||||
|
pg_ctl -D "$data" \
|
||||||
|
-o "-F -h '' -k \"$socket\"" \
|
||||||
|
-w kill TERM "$(cat "$data/postmaster.pid")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf "$scratch"
|
||||||
|
}
|
||||||
|
trap finish EXIT
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
mkdir -p "$socket"
|
||||||
|
initdb -D "$data"
|
||||||
|
|
||||||
|
pg_ctl -D "$data" \
|
||||||
|
-o "-F -h '' -k \"${socket}\"" \
|
||||||
|
-w start
|
||||||
|
|
||||||
|
createdb -h "$socket" "$dbname"
|
||||||
|
|
||||||
|
psql -h "$socket" "$dbname" -f ./hydra-postgresql.sql
|
||||||
|
|
||||||
|
perl -I ../lib \
|
||||||
|
-MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:../lib \
|
||||||
|
update-dbix.pl "dbi:Pg:dbname=$dbname;host=$socket"
|
|
@ -1,8 +1,49 @@
|
||||||
|
use Cwd;
|
||||||
|
|
||||||
|
die "$0: dbi connection string required \n" if scalar @ARGV != 1;
|
||||||
|
|
||||||
make_schema_at("Hydra::Schema", {
|
make_schema_at("Hydra::Schema", {
|
||||||
naming => { ALL => "v5" },
|
naming => { ALL => "v5" },
|
||||||
relationships => 1,
|
relationships => 1,
|
||||||
moniker_map => sub { return "$_"; },
|
moniker_map => {
|
||||||
|
"aggregateconstituents" => "AggregateConstituents",
|
||||||
|
"buildinputs" => "BuildInputs",
|
||||||
|
"buildmetrics" => "BuildMetrics",
|
||||||
|
"buildoutputs" => "BuildOutputs",
|
||||||
|
"buildproducts" => "BuildProducts",
|
||||||
|
"builds" => "Builds",
|
||||||
|
"buildstepoutputs" => "BuildStepOutputs",
|
||||||
|
"buildsteps" => "BuildSteps",
|
||||||
|
"cachedbazaarinputs" => "CachedBazaarInputs",
|
||||||
|
"cachedcvsinputs" => "CachedCVSInputs",
|
||||||
|
"cacheddarcsinputs" => "CachedDarcsInputs",
|
||||||
|
"cachedgitinputs" => "CachedGitInputs",
|
||||||
|
"cachedhginputs" => "CachedHgInputs",
|
||||||
|
"cachedpathinputs" => "CachedPathInputs",
|
||||||
|
"cachedsubversioninputs" => "CachedSubversionInputs",
|
||||||
|
"failedpaths" => "FailedPaths",
|
||||||
|
"jobs" => "Jobs",
|
||||||
|
"jobsetevalinputs" => "JobsetEvalInputs",
|
||||||
|
"jobsetevalmembers" => "JobsetEvalMembers",
|
||||||
|
"jobsetevals" => "JobsetEvals",
|
||||||
|
"jobsetinputalts" => "JobsetInputAlts",
|
||||||
|
"jobsetinputs" => "JobsetInputs",
|
||||||
|
"jobsetrenames" => "JobsetRenames",
|
||||||
|
"jobsets" => "Jobsets",
|
||||||
|
"newsitems" => "NewsItems",
|
||||||
|
"nrbuilds" => "NrBuilds",
|
||||||
|
"projectmembers" => "ProjectMembers",
|
||||||
|
"projects" => "Projects",
|
||||||
|
"releasemembers" => "ReleaseMembers",
|
||||||
|
"releases" => "Releases",
|
||||||
|
"schemaversion" => "SchemaVersion",
|
||||||
|
"starredjobs" => "StarredJobs",
|
||||||
|
"systemstatus" => "SystemStatus",
|
||||||
|
"systemtypes" => "SystemTypes",
|
||||||
|
"urirevmapper" => "UriRevMapper",
|
||||||
|
"userroles" => "UserRoles",
|
||||||
|
"users" => "Users",
|
||||||
|
} , #sub { return "$_"; },
|
||||||
components => [ "+Hydra::Component::ToJSON" ],
|
components => [ "+Hydra::Component::ToJSON" ],
|
||||||
rel_name_map => { buildsteps_builds => "buildsteps" }
|
rel_name_map => { buildsteps_builds => "buildsteps" }
|
||||||
}, ["dbi:SQLite:tmp.sqlite"]);
|
}, [$ARGV[0]]);
|
||||||
|
|
||||||
|
|
4
src/sql/upgrade-59.sql
Normal file
4
src/sql/upgrade-59.sql
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
-- will automatically add unique IDs to Jobsets.
|
||||||
|
ALTER TABLE Jobsets
|
||||||
|
ADD COLUMN id SERIAL NOT NULL,
|
||||||
|
ADD CONSTRAINT Jobsets_id_unique UNIQUE (id);
|
10
src/sql/upgrade-60.sql
Normal file
10
src/sql/upgrade-60.sql
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
-- Add the jobset_id columns to the Jobs table. This will go
|
||||||
|
-- quickly, since the field is nullable. Note this is just part one of
|
||||||
|
-- this migration. Future steps involve a piecemeal backfilling, and
|
||||||
|
-- then making the column non-null.
|
||||||
|
|
||||||
|
ALTER TABLE Jobs
|
||||||
|
ADD COLUMN jobset_id integer NULL,
|
||||||
|
ADD FOREIGN KEY (jobset_id)
|
||||||
|
REFERENCES Jobsets(id)
|
||||||
|
ON DELETE CASCADE;
|
10
src/sql/upgrade-61.sql
Normal file
10
src/sql/upgrade-61.sql
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
-- Add the jobset_id columns to the Builds table. This will go
|
||||||
|
-- quickly, since the field is nullable. Note this is just part one of
|
||||||
|
-- this migration. Future steps involve a piecemeal backfilling, and
|
||||||
|
-- then making the column non-null.
|
||||||
|
|
||||||
|
ALTER TABLE Builds
|
||||||
|
ADD COLUMN jobset_id integer NULL,
|
||||||
|
ADD FOREIGN KEY (jobset_id)
|
||||||
|
REFERENCES Jobsets(id)
|
||||||
|
ON DELETE CASCADE;
|
Loading…
Reference in a new issue