diff --git a/src/lib/Hydra/Schema.pm b/src/lib/Hydra/Schema.pm
index 014f0ffd..6533cd06 100644
--- a/src/lib/Hydra/Schema.pm
+++ b/src/lib/Hydra/Schema.pm
@@ -1,3 +1,4 @@
+use utf8;
 package Hydra::Schema;
 
 # Created by DBIx::Class::Schema::Loader
@@ -11,8 +12,8 @@ use base 'DBIx::Class::Schema';
 __PACKAGE__->load_classes;
 
 
-# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Y97NEH6tnsRjsy0/nVgMjQ
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:08:56
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:BpPjKT5Pb1RYMHo+oKdZ+w
 
 
 # You can replace this text with custom content, and it will be preserved on regeneration
diff --git a/src/lib/Hydra/Schema/BuildInputs.pm b/src/lib/Hydra/Schema/BuildInputs.pm
index 7c1a2551..3cf6c687 100644
--- a/src/lib/Hydra/Schema/BuildInputs.pm
+++ b/src/lib/Hydra/Schema/BuildInputs.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::BuildInputs;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::BuildInputs
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::BuildInputs
+=head1 TABLE: C<BuildInputs>
 
 =cut
 
@@ -21,168 +25,99 @@ __PACKAGE__->table("BuildInputs");
 
 =head2 id
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_auto_increment: 1
   is_nullable: 0
-  size: undef
 
 =head2 build
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_foreign_key: 1
   is_nullable: 1
-  size: undef
 
 =head2 name
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 type
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 uri
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 revision
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 tag
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 value
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 dependency
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_foreign_key: 1
   is_nullable: 1
-  size: undef
 
 =head2 path
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 sha256hash
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "id",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_auto_increment => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
   "build",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
   "name",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "type",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "uri",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "revision",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "tag",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "value",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "dependency",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
   "path",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "sha256hash",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</id>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("id");
 
 =head1 RELATIONS
@@ -218,8 +153,8 @@ __PACKAGE__->belongs_to(
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:48U7D8+iCPaPc42KJCoQGg
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:yaqa9gcGx9Z+Nfr3xgX28g
 
 use Hydra::Helper::Nix;
 
diff --git a/src/lib/Hydra/Schema/BuildMachineSystemTypes.pm b/src/lib/Hydra/Schema/BuildMachineSystemTypes.pm
index ed328010..e64363da 100644
--- a/src/lib/Hydra/Schema/BuildMachineSystemTypes.pm
+++ b/src/lib/Hydra/Schema/BuildMachineSystemTypes.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::BuildMachineSystemTypes;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::BuildMachineSystemTypes
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::BuildMachineSystemTypes
+=head1 TABLE: C<BuildMachineSystemTypes>
 
 =cut
 
@@ -21,38 +25,36 @@ __PACKAGE__->table("BuildMachineSystemTypes");
 
 =head2 hostname
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 system
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "hostname",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "system",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</hostname>
+
+=item * L</system>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("hostname", "system");
 
 =head1 RELATIONS
@@ -73,8 +75,8 @@ __PACKAGE__->belongs_to(
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-10-08 13:47:26
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:F/voQZLNESTotUOWRbg4WA
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:CpwMC8YMFC4B7gzGBdzh0A
 
 
 # You can replace this text with custom content, and it will be preserved on regeneration
diff --git a/src/lib/Hydra/Schema/BuildMachines.pm b/src/lib/Hydra/Schema/BuildMachines.pm
index e1e70184..d4e28d71 100644
--- a/src/lib/Hydra/Schema/BuildMachines.pm
+++ b/src/lib/Hydra/Schema/BuildMachines.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::BuildMachines;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::BuildMachines
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::BuildMachines
+=head1 TABLE: C<BuildMachines>
 
 =cut
 
@@ -21,76 +25,74 @@ __PACKAGE__->table("BuildMachines");
 
 =head2 hostname
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 username
 
-  data_type: text
-  default_value: ''
+  data_type: 'text'
+  default_value: (empty string)
   is_nullable: 0
-  size: undef
 
 =head2 ssh_key
 
-  data_type: text
-  default_value: ''
+  data_type: 'text'
+  default_value: (empty string)
   is_nullable: 0
-  size: undef
 
 =head2 options
 
-  data_type: text
-  default_value: ''
+  data_type: 'text'
+  default_value: (empty string)
   is_nullable: 0
-  size: undef
 
 =head2 maxconcurrent
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 2
   is_nullable: 0
-  size: undef
 
 =head2 speedfactor
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 1
   is_nullable: 0
-  size: undef
 
 =head2 enabled
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "hostname",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "username",
-  { data_type => "text", default_value => "''", is_nullable => 0, size => undef },
+  { data_type => "text", default_value => "", is_nullable => 0 },
   "ssh_key",
-  { data_type => "text", default_value => "''", is_nullable => 0, size => undef },
+  { data_type => "text", default_value => "", is_nullable => 0 },
   "options",
-  { data_type => "text", default_value => "''", is_nullable => 0, size => undef },
+  { data_type => "text", default_value => "", is_nullable => 0 },
   "maxconcurrent",
-  { data_type => "integer", default_value => 2, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 2, is_nullable => 0 },
   "speedfactor",
-  { data_type => "integer", default_value => 1, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 1, is_nullable => 0 },
   "enabled",
-  { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</hostname>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("hostname");
 
 =head1 RELATIONS
@@ -107,11 +109,12 @@ __PACKAGE__->has_many(
   "buildmachinesystemtypes",
   "Hydra::Schema::BuildMachineSystemTypes",
   { "foreign.hostname" => "self.hostname" },
+  {},
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-11-11 10:58:44
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:GV0LlwTyjFctix2zArVTGw
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:wboDtUIBUkvEiUHpe09kkg
 
 
 # You can replace this text with custom content, and it will be preserved on regeneration
diff --git a/src/lib/Hydra/Schema/BuildProducts.pm b/src/lib/Hydra/Schema/BuildProducts.pm
index fd8e0132..6b531937 100644
--- a/src/lib/Hydra/Schema/BuildProducts.pm
+++ b/src/lib/Hydra/Schema/BuildProducts.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::BuildProducts;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::BuildProducts
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::BuildProducts
+=head1 TABLE: C<BuildProducts>
 
 =cut
 
@@ -21,164 +25,99 @@ __PACKAGE__->table("BuildProducts");
 
 =head2 build
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 productnr
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 type
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 subtype
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 filesize
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =head2 sha1hash
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 sha256hash
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 path
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 name
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 description
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 defaultpath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "build",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_foreign_key => 1, is_nullable => 0 },
   "productnr",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "type",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "subtype",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "filesize",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
   "sha1hash",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "sha256hash",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "path",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "name",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "description",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "defaultpath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</build>
+
+=item * L</productnr>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("build", "productnr");
 
 =head1 RELATIONS
@@ -194,8 +133,8 @@ Related object: L<Hydra::Schema::Builds>
 __PACKAGE__->belongs_to("build", "Hydra::Schema::Builds", { id => "build" }, {});
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:5XWD8BZb3WeSJwKirHGhWA
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:suSgQkBLXzu0yD4YicRS1A
 
 # You can replace this text with custom content, and it will be preserved on regeneration
 1;
diff --git a/src/lib/Hydra/Schema/BuildResultInfo.pm b/src/lib/Hydra/Schema/BuildResultInfo.pm
index 8cf647e8..f4bc1854 100644
--- a/src/lib/Hydra/Schema/BuildResultInfo.pm
+++ b/src/lib/Hydra/Schema/BuildResultInfo.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::BuildResultInfo;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::BuildResultInfo
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::BuildResultInfo
+=head1 TABLE: C<BuildResultInfo>
 
 =cut
 
@@ -21,186 +25,128 @@ __PACKAGE__->table("BuildResultInfo");
 
 =head2 id
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
+  is_auto_increment: 1
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 iscachedbuild
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 buildstatus
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =head2 errormsg
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 starttime
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =head2 stoptime
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =head2 logfile
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 logsize
 
-  data_type: bigint
+  data_type: 'bigint'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =head2 size
 
-  data_type: bigint
+  data_type: 'bigint'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =head2 closuresize
 
-  data_type: bigint
+  data_type: 'bigint'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =head2 releasename
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 keep
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =head2 faileddepbuild
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =head2 faileddepstepnr
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "id",
   {
-    data_type => "integer",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
+    data_type         => "integer",
+    is_auto_increment => 1,
+    is_foreign_key    => 1,
+    is_nullable       => 0,
   },
   "iscachedbuild",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "buildstatus",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
   "errormsg",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "starttime",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
   "stoptime",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
   "logfile",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "logsize",
-  { data_type => "bigint", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "bigint", default_value => 0, is_nullable => 0 },
   "size",
-  { data_type => "bigint", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "bigint", default_value => 0, is_nullable => 0 },
   "closuresize",
-  { data_type => "bigint", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "bigint", default_value => 0, is_nullable => 0 },
   "releasename",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "keep",
-  { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 0 },
   "faileddepbuild",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
   "faileddepstepnr",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</id>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("id");
 
 =head1 RELATIONS
@@ -216,8 +162,8 @@ Related object: L<Hydra::Schema::Builds>
 __PACKAGE__->belongs_to("id", "Hydra::Schema::Builds", { id => "id" }, {});
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2011-02-09 11:17:50
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:WutQSwDawsCKevXw5zXOLw
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:hX3+iQYrGslQqY9vKvyw3g
 
 __PACKAGE__->belongs_to(
   "failedDep",
diff --git a/src/lib/Hydra/Schema/BuildSchedulingInfo.pm b/src/lib/Hydra/Schema/BuildSchedulingInfo.pm
index c41be40e..db622325 100644
--- a/src/lib/Hydra/Schema/BuildSchedulingInfo.pm
+++ b/src/lib/Hydra/Schema/BuildSchedulingInfo.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::BuildSchedulingInfo;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::BuildSchedulingInfo
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::BuildSchedulingInfo
+=head1 TABLE: C<BuildSchedulingInfo>
 
 =cut
 
@@ -21,88 +25,79 @@ __PACKAGE__->table("BuildSchedulingInfo");
 
 =head2 id
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
+  is_auto_increment: 1
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 priority
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =head2 busy
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =head2 locker
 
-  data_type: text
-  default_value: ''
+  data_type: 'text'
+  default_value: (empty string)
   is_nullable: 0
-  size: undef
 
 =head2 logfile
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 disabled
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =head2 starttime
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "id",
   {
-    data_type => "integer",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
+    data_type         => "integer",
+    is_auto_increment => 1,
+    is_foreign_key    => 1,
+    is_nullable       => 0,
   },
   "priority",
-  { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 0 },
   "busy",
-  { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 0 },
   "locker",
-  { data_type => "text", default_value => "''", is_nullable => 0, size => undef },
+  { data_type => "text", default_value => "", is_nullable => 0 },
   "logfile",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "disabled",
-  { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 0 },
   "starttime",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</id>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("id");
 
 =head1 RELATIONS
@@ -118,8 +113,8 @@ Related object: L<Hydra::Schema::Builds>
 __PACKAGE__->belongs_to("id", "Hydra::Schema::Builds", { id => "id" }, {});
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-03-05 13:07:46
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:qOU/YGv3fgPynBXovV6gfg
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Uz7y9Ly+ADRrtrPfEk9lGA
 
 # You can replace this text with custom content, and it will be preserved on regeneration
 1;
diff --git a/src/lib/Hydra/Schema/BuildSteps.pm b/src/lib/Hydra/Schema/BuildSteps.pm
index 9f695aa4..393f1845 100644
--- a/src/lib/Hydra/Schema/BuildSteps.pm
+++ b/src/lib/Hydra/Schema/BuildSteps.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::BuildSteps;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::BuildSteps
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::BuildSteps
+=head1 TABLE: C<BuildSteps>
 
 =cut
 
@@ -21,187 +25,114 @@ __PACKAGE__->table("BuildSteps");
 
 =head2 build
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 stepnr
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 type
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 drvpath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 outpath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 logfile
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 busy
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 status
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =head2 errormsg
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 starttime
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =head2 stoptime
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =head2 machine
 
-  data_type: text
-  default_value: ''
+  data_type: 'text'
+  default_value: (empty string)
   is_nullable: 0
-  size: undef
 
 =head2 system
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "build",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_foreign_key => 1, is_nullable => 0 },
   "stepnr",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "type",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "drvpath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "outpath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "logfile",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "busy",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "status",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
   "errormsg",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "starttime",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
   "stoptime",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
   "machine",
-  { data_type => "text", default_value => "''", is_nullable => 0, size => undef },
+  { data_type => "text", default_value => "", is_nullable => 0 },
   "system",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</build>
+
+=item * L</stepnr>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("build", "stepnr");
 
 =head1 RELATIONS
@@ -217,8 +148,8 @@ Related object: L<Hydra::Schema::Builds>
 __PACKAGE__->belongs_to("build", "Hydra::Schema::Builds", { id => "build" }, {});
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-08-31 17:19:01
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:BU1na1One0SzUwilm7YmQQ
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:5H+OkGT0zQEWkAjU+OlBdg
 
 __PACKAGE__->belongs_to(
   "schedulingInfo",
diff --git a/src/lib/Hydra/Schema/Builds.pm b/src/lib/Hydra/Schema/Builds.pm
index 7805e6c9..6fbd4f86 100644
--- a/src/lib/Hydra/Schema/Builds.pm
+++ b/src/lib/Hydra/Schema/Builds.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::Builds;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::Builds
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::Builds
+=head1 TABLE: C<Builds>
 
 =cut
 
@@ -21,317 +25,257 @@ __PACKAGE__->table("Builds");
 
 =head2 id
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_auto_increment: 1
   is_nullable: 0
-  size: undef
 
 =head2 finished
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 timestamp
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 project
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 jobset
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 job
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 nixname
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 description
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 drvpath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 outpath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 system
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 longdescription
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 license
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 homepage
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 maintainers
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 maxsilent
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 3600
   is_nullable: 1
-  size: undef
 
 =head2 timeout
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 36000
   is_nullable: 1
-  size: undef
 
 =head2 iscurrent
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 1
-  size: undef
 
 =head2 nixexprinput
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 nixexprpath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "id",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_auto_increment => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
   "finished",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "timestamp",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "project",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "jobset",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "job",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "nixname",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "description",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "drvpath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "outpath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "system",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "longdescription",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "license",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "homepage",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "maintainers",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "maxsilent",
-  {
-    data_type => "integer",
-    default_value => 3600,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", default_value => 3600, is_nullable => 1 },
   "timeout",
-  {
-    data_type => "integer",
-    default_value => 36000,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", default_value => 36000, is_nullable => 1 },
   "iscurrent",
-  { data_type => "integer", default_value => 0, is_nullable => 1, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 1 },
   "nixexprinput",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "nixexprpath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</id>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("id");
 
 =head1 RELATIONS
 
-=head2 project
+=head2 buildinputs_builds
 
-Type: belongs_to
+Type: has_many
 
-Related object: L<Hydra::Schema::Projects>
+Related object: L<Hydra::Schema::BuildInputs>
 
 =cut
 
-__PACKAGE__->belongs_to("project", "Hydra::Schema::Projects", { name => "project" }, {});
+__PACKAGE__->has_many(
+  "buildinputs_builds",
+  "Hydra::Schema::BuildInputs",
+  { "foreign.build" => "self.id" },
+  {},
+);
 
-=head2 jobset
+=head2 buildinputs_dependencies
 
-Type: belongs_to
+Type: has_many
 
-Related object: L<Hydra::Schema::Jobsets>
+Related object: L<Hydra::Schema::BuildInputs>
 
 =cut
 
-__PACKAGE__->belongs_to(
-  "jobset",
-  "Hydra::Schema::Jobsets",
-  { name => "jobset", project => "project" },
+__PACKAGE__->has_many(
+  "buildinputs_dependencies",
+  "Hydra::Schema::BuildInputs",
+  { "foreign.dependency" => "self.id" },
+  {},
+);
+
+=head2 buildproducts
+
+Type: has_many
+
+Related object: L<Hydra::Schema::BuildProducts>
+
+=cut
+
+__PACKAGE__->has_many(
+  "buildproducts",
+  "Hydra::Schema::BuildProducts",
+  { "foreign.build" => "self.id" },
+  {},
+);
+
+=head2 buildresultinfo
+
+Type: might_have
+
+Related object: L<Hydra::Schema::BuildResultInfo>
+
+=cut
+
+__PACKAGE__->might_have(
+  "buildresultinfo",
+  "Hydra::Schema::BuildResultInfo",
+  { "foreign.id" => "self.id" },
+  {},
+);
+
+=head2 buildschedulinginfo
+
+Type: might_have
+
+Related object: L<Hydra::Schema::BuildSchedulingInfo>
+
+=cut
+
+__PACKAGE__->might_have(
+  "buildschedulinginfo",
+  "Hydra::Schema::BuildSchedulingInfo",
+  { "foreign.id" => "self.id" },
+  {},
+);
+
+=head2 buildsteps
+
+Type: has_many
+
+Related object: L<Hydra::Schema::BuildSteps>
+
+=cut
+
+__PACKAGE__->has_many(
+  "buildsteps",
+  "Hydra::Schema::BuildSteps",
+  { "foreign.build" => "self.id" },
   {},
 );
 
@@ -350,102 +294,19 @@ __PACKAGE__->belongs_to(
   {},
 );
 
-=head2 buildschedulinginfo
+=head2 jobset
 
-Type: might_have
+Type: belongs_to
 
-Related object: L<Hydra::Schema::BuildSchedulingInfo>
+Related object: L<Hydra::Schema::Jobsets>
 
 =cut
 
-__PACKAGE__->might_have(
-  "buildschedulinginfo",
-  "Hydra::Schema::BuildSchedulingInfo",
-  { "foreign.id" => "self.id" },
-);
-
-=head2 buildresultinfo
-
-Type: might_have
-
-Related object: L<Hydra::Schema::BuildResultInfo>
-
-=cut
-
-__PACKAGE__->might_have(
-  "buildresultinfo",
-  "Hydra::Schema::BuildResultInfo",
-  { "foreign.id" => "self.id" },
-);
-
-=head2 buildsteps
-
-Type: has_many
-
-Related object: L<Hydra::Schema::BuildSteps>
-
-=cut
-
-__PACKAGE__->has_many(
-  "buildsteps",
-  "Hydra::Schema::BuildSteps",
-  { "foreign.build" => "self.id" },
-);
-
-=head2 buildinputs_builds
-
-Type: has_many
-
-Related object: L<Hydra::Schema::BuildInputs>
-
-=cut
-
-__PACKAGE__->has_many(
-  "buildinputs_builds",
-  "Hydra::Schema::BuildInputs",
-  { "foreign.build" => "self.id" },
-);
-
-=head2 buildinputs_dependencies
-
-Type: has_many
-
-Related object: L<Hydra::Schema::BuildInputs>
-
-=cut
-
-__PACKAGE__->has_many(
-  "buildinputs_dependencies",
-  "Hydra::Schema::BuildInputs",
-  { "foreign.dependency" => "self.id" },
-);
-
-=head2 buildproducts
-
-Type: has_many
-
-Related object: L<Hydra::Schema::BuildProducts>
-
-=cut
-
-__PACKAGE__->has_many(
-  "buildproducts",
-  "Hydra::Schema::BuildProducts",
-  { "foreign.build" => "self.id" },
-);
-
-=head2 releasemembers
-
-Type: has_many
-
-Related object: L<Hydra::Schema::ReleaseMembers>
-
-=cut
-
-__PACKAGE__->has_many(
-  "releasemembers",
-  "Hydra::Schema::ReleaseMembers",
-  { "foreign.build" => "self.id" },
+__PACKAGE__->belongs_to(
+  "jobset",
+  "Hydra::Schema::Jobsets",
+  { name => "jobset", project => "project" },
+  {},
 );
 
 =head2 jobsetevalmembers
@@ -460,11 +321,37 @@ __PACKAGE__->has_many(
   "jobsetevalmembers",
   "Hydra::Schema::JobsetEvalMembers",
   { "foreign.build" => "self.id" },
+  {},
+);
+
+=head2 project
+
+Type: belongs_to
+
+Related object: L<Hydra::Schema::Projects>
+
+=cut
+
+__PACKAGE__->belongs_to("project", "Hydra::Schema::Projects", { name => "project" }, {});
+
+=head2 releasemembers
+
+Type: has_many
+
+Related object: L<Hydra::Schema::ReleaseMembers>
+
+=cut
+
+__PACKAGE__->has_many(
+  "releasemembers",
+  "Hydra::Schema::ReleaseMembers",
+  { "foreign.build" => "self.id" },
+  {},
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-05-26 09:25:50
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:OApfteImw84nYhUvSUB4FA
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:RRtBPTdD946kA5133+c4kw
 
 use Hydra::Helper::Nix;
 
diff --git a/src/lib/Hydra/Schema/CachedBazaarInputs.pm b/src/lib/Hydra/Schema/CachedBazaarInputs.pm
index 3d647e6b..f2d9a059 100644
--- a/src/lib/Hydra/Schema/CachedBazaarInputs.pm
+++ b/src/lib/Hydra/Schema/CachedBazaarInputs.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::CachedBazaarInputs;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::CachedBazaarInputs
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::CachedBazaarInputs
+=head1 TABLE: C<CachedBazaarInputs>
 
 =cut
 
@@ -21,69 +25,54 @@ __PACKAGE__->table("CachedBazaarInputs");
 
 =head2 uri
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 revision
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 sha256hash
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 storepath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "uri",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "revision",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "sha256hash",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "storepath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</uri>
+
+=item * L</revision>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("uri", "revision");
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2011-02-09 11:17:32
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:m7+K0wiCgGDnJVlC13SG5w
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ONhBo6Xhq7uwYFdEzbp3dg
 
 
 # You can replace this text with custom content, and it will be preserved on regeneration
diff --git a/src/lib/Hydra/Schema/CachedCVSInputs.pm b/src/lib/Hydra/Schema/CachedCVSInputs.pm
index e1dcfaef..bb8a6363 100644
--- a/src/lib/Hydra/Schema/CachedCVSInputs.pm
+++ b/src/lib/Hydra/Schema/CachedCVSInputs.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::CachedCVSInputs;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::CachedCVSInputs
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::CachedCVSInputs
+=head1 TABLE: C<CachedCVSInputs>
 
 =cut
 
@@ -21,97 +25,70 @@ __PACKAGE__->table("CachedCVSInputs");
 
 =head2 uri
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 module
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 timestamp
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 lastseen
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 sha256hash
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 storepath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "uri",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "module",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "timestamp",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "lastseen",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "sha256hash",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "storepath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</uri>
+
+=item * L</module>
+
+=item * L</sha256hash>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("uri", "module", "sha256hash");
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:XfIRW2I//m0W9D6jCmYJGA
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:IcSVN/tlfQQtX88Ix+aKnw
 
 # You can replace this text with custom content, and it will be preserved on regeneration
 1;
diff --git a/src/lib/Hydra/Schema/CachedGitInputs.pm b/src/lib/Hydra/Schema/CachedGitInputs.pm
index 6a69a506..f98eb09c 100644
--- a/src/lib/Hydra/Schema/CachedGitInputs.pm
+++ b/src/lib/Hydra/Schema/CachedGitInputs.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::CachedGitInputs;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::CachedGitInputs
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::CachedGitInputs
+=head1 TABLE: C<CachedGitInputs>
 
 =cut
 
@@ -21,82 +25,62 @@ __PACKAGE__->table("CachedGitInputs");
 
 =head2 uri
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 branch
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 revision
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 sha256hash
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 storepath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "uri",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "branch",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "revision",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "sha256hash",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "storepath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</uri>
+
+=item * L</branch>
+
+=item * L</revision>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("uri", "branch", "revision");
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-08-10 08:24:15
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:4eYbLtiy5X3yegndBRFtSg
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:fx3yosWMmJ+MnvL/dSWtFA
 
 1;
diff --git a/src/lib/Hydra/Schema/CachedHgInputs.pm b/src/lib/Hydra/Schema/CachedHgInputs.pm
index 6c7809bd..122941ec 100644
--- a/src/lib/Hydra/Schema/CachedHgInputs.pm
+++ b/src/lib/Hydra/Schema/CachedHgInputs.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::CachedHgInputs;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::CachedHgInputs
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::CachedHgInputs
+=head1 TABLE: C<CachedHgInputs>
 
 =cut
 
@@ -21,83 +25,63 @@ __PACKAGE__->table("CachedHgInputs");
 
 =head2 uri
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 branch
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 revision
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 sha256hash
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 storepath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "uri",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "branch",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "revision",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "sha256hash",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "storepath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</uri>
+
+=item * L</branch>
+
+=item * L</revision>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("uri", "branch", "revision");
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-07-27 18:22:46
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:5gzMs6Nys1tVwoa00j9CjQ
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:xFLnuCBAcJCg+N3b4aajZQ
 
 
 # You can replace this text with custom content, and it will be preserved on regeneration
diff --git a/src/lib/Hydra/Schema/CachedPathInputs.pm b/src/lib/Hydra/Schema/CachedPathInputs.pm
index 4cc2c2e6..9ce57f7b 100644
--- a/src/lib/Hydra/Schema/CachedPathInputs.pm
+++ b/src/lib/Hydra/Schema/CachedPathInputs.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::CachedPathInputs;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::CachedPathInputs
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::CachedPathInputs
+=head1 TABLE: C<CachedPathInputs>
 
 =cut
 
@@ -21,82 +25,60 @@ __PACKAGE__->table("CachedPathInputs");
 
 =head2 srcpath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 timestamp
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 lastseen
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 sha256hash
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 storepath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "srcpath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "timestamp",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "lastseen",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "sha256hash",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "storepath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</srcpath>
+
+=item * L</sha256hash>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("srcpath", "sha256hash");
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:kZP1P7P2TMUCnnFPIGh1iA
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:4KzXhMnUldVgNuuNXWIYjw
 
 1;
diff --git a/src/lib/Hydra/Schema/CachedSubversionInputs.pm b/src/lib/Hydra/Schema/CachedSubversionInputs.pm
index 6e9fe70d..7d92b5ce 100644
--- a/src/lib/Hydra/Schema/CachedSubversionInputs.pm
+++ b/src/lib/Hydra/Schema/CachedSubversionInputs.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::CachedSubversionInputs;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::CachedSubversionInputs
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::CachedSubversionInputs
+=head1 TABLE: C<CachedSubversionInputs>
 
 =cut
 
@@ -21,68 +25,53 @@ __PACKAGE__->table("CachedSubversionInputs");
 
 =head2 uri
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 revision
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 sha256hash
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 storepath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "uri",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "revision",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "sha256hash",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "storepath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</uri>
+
+=item * L</revision>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("uri", "revision");
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:X5cnk1/P6U0SzCCQr72rBg
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:1rjwWtZXGEowHqhfjLqjmA
 
 1;
diff --git a/src/lib/Hydra/Schema/Jobs.pm b/src/lib/Hydra/Schema/Jobs.pm
index 275f99fc..5c3a94d8 100644
--- a/src/lib/Hydra/Schema/Jobs.pm
+++ b/src/lib/Hydra/Schema/Jobs.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::Jobs;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::Jobs
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::Jobs
+=head1 TABLE: C<Jobs>
 
 =cut
 
@@ -21,143 +25,87 @@ __PACKAGE__->table("Jobs");
 
 =head2 project
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 jobset
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 name
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 active
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 1
   is_nullable: 0
-  size: undef
 
 =head2 errormsg
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 firstevaltime
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =head2 lastevaltime
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =head2 disabled
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "project",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "jobset",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "name",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "active",
-  { data_type => "integer", default_value => 1, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 1, is_nullable => 0 },
   "errormsg",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "firstevaltime",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
   "lastevaltime",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
   "disabled",
-  { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</project>
+
+=item * L</jobset>
+
+=item * L</name>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("project", "jobset", "name");
 
 =head1 RELATIONS
 
-=head2 project
-
-Type: belongs_to
-
-Related object: L<Hydra::Schema::Projects>
-
-=cut
-
-__PACKAGE__->belongs_to("project", "Hydra::Schema::Projects", { name => "project" }, {});
-
-=head2 jobset
-
-Type: belongs_to
-
-Related object: L<Hydra::Schema::Jobsets>
-
-=cut
-
-__PACKAGE__->belongs_to(
-  "jobset",
-  "Hydra::Schema::Jobsets",
-  { name => "jobset", project => "project" },
-  {},
-);
-
 =head2 builds
 
 Type: has_many
@@ -174,10 +122,36 @@ __PACKAGE__->has_many(
     "foreign.jobset"  => "self.jobset",
     "foreign.project" => "self.project",
   },
+  {},
 );
 
+=head2 jobset
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:MA9QPD0BcewmJazzmSu1MA
+Type: belongs_to
+
+Related object: L<Hydra::Schema::Jobsets>
+
+=cut
+
+__PACKAGE__->belongs_to(
+  "jobset",
+  "Hydra::Schema::Jobsets",
+  { name => "jobset", project => "project" },
+  {},
+);
+
+=head2 project
+
+Type: belongs_to
+
+Related object: L<Hydra::Schema::Projects>
+
+=cut
+
+__PACKAGE__->belongs_to("project", "Hydra::Schema::Projects", { name => "project" }, {});
+
+
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ZyDc4SrY9RfmsLK6VOqHhw
 
 1;
diff --git a/src/lib/Hydra/Schema/JobsetEvalMembers.pm b/src/lib/Hydra/Schema/JobsetEvalMembers.pm
index fc37dfa1..81c4b6bb 100644
--- a/src/lib/Hydra/Schema/JobsetEvalMembers.pm
+++ b/src/lib/Hydra/Schema/JobsetEvalMembers.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::JobsetEvalMembers;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::JobsetEvalMembers
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::JobsetEvalMembers
+=head1 TABLE: C<JobsetEvalMembers>
 
 =cut
 
@@ -21,67 +25,47 @@ __PACKAGE__->table("JobsetEvalMembers");
 
 =head2 eval
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 build
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 isnew
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "eval",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_foreign_key => 1, is_nullable => 0 },
   "build",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_foreign_key => 1, is_nullable => 0 },
   "isnew",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
 );
-__PACKAGE__->set_primary_key("eval", "build");
 
-=head1 RELATIONS
+=head1 PRIMARY KEY
 
-=head2 eval
+=over 4
 
-Type: belongs_to
+=item * L</eval>
 
-Related object: L<Hydra::Schema::JobsetEvals>
+=item * L</build>
+
+=back
 
 =cut
 
-__PACKAGE__->belongs_to("eval", "Hydra::Schema::JobsetEvals", { id => "eval" }, {});
+__PACKAGE__->set_primary_key("eval", "build");
+
+=head1 RELATIONS
 
 =head2 build
 
@@ -93,9 +77,19 @@ Related object: L<Hydra::Schema::Builds>
 
 __PACKAGE__->belongs_to("build", "Hydra::Schema::Builds", { id => "build" }, {});
 
+=head2 eval
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-03-05 13:07:46
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:vwefi8q3HolhFCkB9aEVWw
+Type: belongs_to
+
+Related object: L<Hydra::Schema::JobsetEvals>
+
+=cut
+
+__PACKAGE__->belongs_to("eval", "Hydra::Schema::JobsetEvals", { id => "eval" }, {});
+
+
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:0K4lDPUQeK04SEXS5yBbeA
 
 
 # You can replace this text with custom content, and it will be preserved on regeneration
diff --git a/src/lib/Hydra/Schema/JobsetEvals.pm b/src/lib/Hydra/Schema/JobsetEvals.pm
index 0d5f05ae..36058ff1 100644
--- a/src/lib/Hydra/Schema/JobsetEvals.pm
+++ b/src/lib/Hydra/Schema/JobsetEvals.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::JobsetEvals;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::JobsetEvals
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::JobsetEvals
+=head1 TABLE: C<JobsetEvals>
 
 =cut
 
@@ -21,139 +25,81 @@ __PACKAGE__->table("JobsetEvals");
 
 =head2 id
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_auto_increment: 1
   is_nullable: 0
-  size: undef
 
 =head2 project
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 jobset
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 timestamp
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 checkouttime
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 evaltime
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 hasnewbuilds
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 hash
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "id",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_auto_increment => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
   "project",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "jobset",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "timestamp",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "checkouttime",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "evaltime",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "hasnewbuilds",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "hash",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
 );
-__PACKAGE__->set_primary_key("id");
 
-=head1 RELATIONS
+=head1 PRIMARY KEY
 
-=head2 project
+=over 4
 
-Type: belongs_to
+=item * L</id>
 
-Related object: L<Hydra::Schema::Projects>
+=back
 
 =cut
 
-__PACKAGE__->belongs_to("project", "Hydra::Schema::Projects", { name => "project" }, {});
+__PACKAGE__->set_primary_key("id");
+
+=head1 RELATIONS
 
 =head2 jobset
 
@@ -182,11 +128,22 @@ __PACKAGE__->has_many(
   "jobsetevalmembers",
   "Hydra::Schema::JobsetEvalMembers",
   { "foreign.eval" => "self.id" },
+  {},
 );
 
+=head2 project
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-03-05 13:33:51
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:QD7ZMOLp9HpK0mAYkk0d/Q
+Type: belongs_to
+
+Related object: L<Hydra::Schema::Projects>
+
+=cut
+
+__PACKAGE__->belongs_to("project", "Hydra::Schema::Projects", { name => "project" }, {});
+
+
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:eQtF5bcR/qZ625LxWBc7ug
 
 use Hydra::Helper::Nix;
 
diff --git a/src/lib/Hydra/Schema/JobsetInputAlts.pm b/src/lib/Hydra/Schema/JobsetInputAlts.pm
index abd874f8..62810ae1 100644
--- a/src/lib/Hydra/Schema/JobsetInputAlts.pm
+++ b/src/lib/Hydra/Schema/JobsetInputAlts.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::JobsetInputAlts;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::JobsetInputAlts
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::JobsetInputAlts
+=head1 TABLE: C<JobsetInputAlts>
 
 =cut
 
@@ -21,112 +25,77 @@ __PACKAGE__->table("JobsetInputAlts");
 
 =head2 project
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 jobset
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 input
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 altnr
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 value
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 revision
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 tag
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "project",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "jobset",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "input",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "altnr",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "value",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "revision",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "tag",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</project>
+
+=item * L</jobset>
+
+=item * L</input>
+
+=item * L</altnr>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("project", "jobset", "input", "altnr");
 
 =head1 RELATIONS
@@ -147,7 +116,7 @@ __PACKAGE__->belongs_to(
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:l75rIU6dDqdHBkPIaC+84w
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:jtiF1/FMZBz6iUKqIhSeVw
 
 1;
diff --git a/src/lib/Hydra/Schema/JobsetInputs.pm b/src/lib/Hydra/Schema/JobsetInputs.pm
index ea985c97..160b4d5c 100644
--- a/src/lib/Hydra/Schema/JobsetInputs.pm
+++ b/src/lib/Hydra/Schema/JobsetInputs.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::JobsetInputs;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::JobsetInputs
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::JobsetInputs
+=head1 TABLE: C<JobsetInputs>
 
 =cut
 
@@ -21,89 +25,56 @@ __PACKAGE__->table("JobsetInputs");
 
 =head2 project
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 jobset
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 name
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 type
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "project",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "jobset",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "name",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "type",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
 );
-__PACKAGE__->set_primary_key("project", "jobset", "name");
 
-=head1 RELATIONS
+=head1 PRIMARY KEY
 
-=head2 jobsets
+=over 4
 
-Type: has_many
+=item * L</project>
 
-Related object: L<Hydra::Schema::Jobsets>
+=item * L</jobset>
+
+=item * L</name>
+
+=back
 
 =cut
 
-__PACKAGE__->has_many(
-  "jobsets",
-  "Hydra::Schema::Jobsets",
-  {
-    "foreign.name"         => "self.jobset",
-    "foreign.nixexprinput" => "self.name",
-    "foreign.project"      => "self.project",
-  },
-);
+__PACKAGE__->set_primary_key("project", "jobset", "name");
+
+=head1 RELATIONS
 
 =head2 jobset
 
@@ -136,10 +107,30 @@ __PACKAGE__->has_many(
     "foreign.jobset"  => "self.jobset",
     "foreign.project" => "self.project",
   },
+  {},
+);
+
+=head2 jobsets
+
+Type: has_many
+
+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",
+  },
+  {},
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:eThDu6WyuCUmDMEDlXyPkA
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:F/eZhnWZHATn9+O6MzuPqA
 
 1;
diff --git a/src/lib/Hydra/Schema/Jobsets.pm b/src/lib/Hydra/Schema/Jobsets.pm
index ac498e49..dc075b4e 100644
--- a/src/lib/Hydra/Schema/Jobsets.pm
+++ b/src/lib/Hydra/Schema/Jobsets.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::Jobsets;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::Jobsets
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::Jobsets
+=head1 TABLE: C<Jobsets>
 
 =cut
 
@@ -21,189 +25,176 @@ __PACKAGE__->table("Jobsets");
 
 =head2 name
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 project
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 description
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 nixexprinput
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 nixexprpath
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 errormsg
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 errortime
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =head2 lastcheckedtime
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 1
-  size: undef
 
 =head2 enabled
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 1
   is_nullable: 0
-  size: undef
 
 =head2 enableemail
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 1
   is_nullable: 0
-  size: undef
 
 =head2 hidden
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =head2 emailoverride
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 keepnr
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 3
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "name",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "project",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "description",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "nixexprinput",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "nixexprpath",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "errormsg",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "errortime",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
   "lastcheckedtime",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 1 },
   "enabled",
-  { data_type => "integer", default_value => 1, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 1, is_nullable => 0 },
   "enableemail",
-  { data_type => "integer", default_value => 1, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 1, is_nullable => 0 },
   "hidden",
-  { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 0 },
   "emailoverride",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "keepnr",
-  { data_type => "integer", default_value => 3, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 3, is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</project>
+
+=item * L</name>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("project", "name");
 
 =head1 RELATIONS
 
-=head2 project
+=head2 builds
 
-Type: belongs_to
+Type: has_many
 
-Related object: L<Hydra::Schema::Projects>
+Related object: L<Hydra::Schema::Builds>
 
 =cut
 
-__PACKAGE__->belongs_to("project", "Hydra::Schema::Projects", { name => "project" }, {});
+__PACKAGE__->has_many(
+  "builds",
+  "Hydra::Schema::Builds",
+  {
+    "foreign.jobset"  => "self.name",
+    "foreign.project" => "self.project",
+  },
+  {},
+);
+
+=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",
+  },
+  {},
+);
+
+=head2 jobsetevals
+
+Type: has_many
+
+Related object: L<Hydra::Schema::JobsetEvals>
+
+=cut
+
+__PACKAGE__->has_many(
+  "jobsetevals",
+  "Hydra::Schema::JobsetEvals",
+  {
+    "foreign.jobset"  => "self.name",
+    "foreign.project" => "self.project",
+  },
+  {},
+);
 
 =head2 jobsetinput
 
@@ -235,61 +226,21 @@ __PACKAGE__->has_many(
     "foreign.jobset"  => "self.name",
     "foreign.project" => "self.project",
   },
+  {},
 );
 
-=head2 jobs
+=head2 project
 
-Type: has_many
+Type: belongs_to
 
-Related object: L<Hydra::Schema::Jobs>
+Related object: L<Hydra::Schema::Projects>
 
 =cut
 
-__PACKAGE__->has_many(
-  "jobs",
-  "Hydra::Schema::Jobs",
-  {
-    "foreign.jobset"  => "self.name",
-    "foreign.project" => "self.project",
-  },
-);
-
-=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",
-  },
-);
-
-=head2 jobsetevals
-
-Type: has_many
-
-Related object: L<Hydra::Schema::JobsetEvals>
-
-=cut
-
-__PACKAGE__->has_many(
-  "jobsetevals",
-  "Hydra::Schema::JobsetEvals",
-  {
-    "foreign.jobset"  => "self.name",
-    "foreign.project" => "self.project",
-  },
-);
+__PACKAGE__->belongs_to("project", "Hydra::Schema::Projects", { name => "project" }, {});
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-08-10 08:24:15
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:b/GSJQxUcjCP4fn3peJVMg
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Ikvo8+cq03DzjEUvXSqYiQ
 
 1;
diff --git a/src/lib/Hydra/Schema/NewsItems.pm b/src/lib/Hydra/Schema/NewsItems.pm
index e9388423..2c731440 100644
--- a/src/lib/Hydra/Schema/NewsItems.pm
+++ b/src/lib/Hydra/Schema/NewsItems.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::NewsItems;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::NewsItems
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::NewsItems
+=head1 TABLE: C<NewsItems>
 
 =cut
 
@@ -21,68 +25,49 @@ __PACKAGE__->table("NewsItems");
 
 =head2 id
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_auto_increment: 1
   is_nullable: 0
-  size: undef
 
 =head2 contents
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 createtime
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 author
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "id",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_auto_increment => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
   "contents",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "createtime",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "author",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</id>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("id");
 
 =head1 RELATIONS
@@ -98,8 +83,8 @@ Related object: L<Hydra::Schema::Users>
 __PACKAGE__->belongs_to("author", "Hydra::Schema::Users", { username => "author" }, {});
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-04-27 15:13:51
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:SX13YZYhf5Uz5KZGphG/+w
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:YRMh0QI4JezFLj7nywGu6Q
 
 use Hydra::Helper::Nix;
 
diff --git a/src/lib/Hydra/Schema/ProjectMembers.pm b/src/lib/Hydra/Schema/ProjectMembers.pm
index c3776eb7..7cae0206 100644
--- a/src/lib/Hydra/Schema/ProjectMembers.pm
+++ b/src/lib/Hydra/Schema/ProjectMembers.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::ProjectMembers;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::ProjectMembers
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::ProjectMembers
+=head1 TABLE: C<ProjectMembers>
 
 =cut
 
@@ -21,40 +25,37 @@ __PACKAGE__->table("ProjectMembers");
 
 =head2 project
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 username
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "project",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "username",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</project>
+
+=item * L</username>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("project", "username");
 
 =head1 RELATIONS
@@ -85,8 +86,8 @@ __PACKAGE__->belongs_to(
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-03-10 10:46:50
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:/5E52ddbqTr6+kf+ixYZGA
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:09p6h8c3+hRIjw3XmX15rA
 
 
 # You can replace this text with custom content, and it will be preserved on regeneration
diff --git a/src/lib/Hydra/Schema/Projects.pm b/src/lib/Hydra/Schema/Projects.pm
index 682832ae..1cf0de35 100644
--- a/src/lib/Hydra/Schema/Projects.pm
+++ b/src/lib/Hydra/Schema/Projects.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::Projects;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::Projects
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::Projects
+=head1 TABLE: C<Projects>
 
 =cut
 
@@ -21,102 +25,135 @@ __PACKAGE__->table("Projects");
 
 =head2 name
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 displayname
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 description
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 enabled
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 1
   is_nullable: 0
-  size: undef
 
 =head2 hidden
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =head2 owner
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 homepage
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "name",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "displayname",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "description",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "enabled",
-  { data_type => "integer", default_value => 1, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 1, is_nullable => 0 },
   "hidden",
-  { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 0 },
   "owner",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "homepage",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</name>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("name");
 
 =head1 RELATIONS
 
+=head2 builds
+
+Type: has_many
+
+Related object: L<Hydra::Schema::Builds>
+
+=cut
+
+__PACKAGE__->has_many(
+  "builds",
+  "Hydra::Schema::Builds",
+  { "foreign.project" => "self.name" },
+  {},
+);
+
+=head2 jobs
+
+Type: has_many
+
+Related object: L<Hydra::Schema::Jobs>
+
+=cut
+
+__PACKAGE__->has_many(
+  "jobs",
+  "Hydra::Schema::Jobs",
+  { "foreign.project" => "self.name" },
+  {},
+);
+
+=head2 jobsetevals
+
+Type: has_many
+
+Related object: L<Hydra::Schema::JobsetEvals>
+
+=cut
+
+__PACKAGE__->has_many(
+  "jobsetevals",
+  "Hydra::Schema::JobsetEvals",
+  { "foreign.project" => "self.name" },
+  {},
+);
+
+=head2 jobsets
+
+Type: has_many
+
+Related object: L<Hydra::Schema::Jobsets>
+
+=cut
+
+__PACKAGE__->has_many(
+  "jobsets",
+  "Hydra::Schema::Jobsets",
+  { "foreign.project" => "self.name" },
+  {},
+);
+
 =head2 owner
 
 Type: belongs_to
@@ -139,90 +176,7 @@ __PACKAGE__->has_many(
   "projectmembers",
   "Hydra::Schema::ProjectMembers",
   { "foreign.project" => "self.name" },
-);
-
-=head2 jobsets
-
-Type: has_many
-
-Related object: L<Hydra::Schema::Jobsets>
-
-=cut
-
-__PACKAGE__->has_many(
-  "jobsets",
-  "Hydra::Schema::Jobsets",
-  { "foreign.project" => "self.name" },
-);
-
-=head2 jobs
-
-Type: has_many
-
-Related object: L<Hydra::Schema::Jobs>
-
-=cut
-
-__PACKAGE__->has_many(
-  "jobs",
-  "Hydra::Schema::Jobs",
-  { "foreign.project" => "self.name" },
-);
-
-=head2 builds
-
-Type: has_many
-
-Related object: L<Hydra::Schema::Builds>
-
-=cut
-
-__PACKAGE__->has_many(
-  "builds",
-  "Hydra::Schema::Builds",
-  { "foreign.project" => "self.name" },
-);
-
-=head2 views
-
-Type: has_many
-
-Related object: L<Hydra::Schema::Views>
-
-=cut
-
-__PACKAGE__->has_many(
-  "views",
-  "Hydra::Schema::Views",
-  { "foreign.project" => "self.name" },
-);
-
-=head2 viewjobs
-
-Type: has_many
-
-Related object: L<Hydra::Schema::ViewJobs>
-
-=cut
-
-__PACKAGE__->has_many(
-  "viewjobs",
-  "Hydra::Schema::ViewJobs",
-  { "foreign.project" => "self.name" },
-);
-
-=head2 releases
-
-Type: has_many
-
-Related object: L<Hydra::Schema::Releases>
-
-=cut
-
-__PACKAGE__->has_many(
-  "releases",
-  "Hydra::Schema::Releases",
-  { "foreign.project" => "self.name" },
+  {},
 );
 
 =head2 releasemembers
@@ -237,25 +191,57 @@ __PACKAGE__->has_many(
   "releasemembers",
   "Hydra::Schema::ReleaseMembers",
   { "foreign.project" => "self.name" },
+  {},
 );
 
-=head2 jobsetevals
+=head2 releases
 
 Type: has_many
 
-Related object: L<Hydra::Schema::JobsetEvals>
+Related object: L<Hydra::Schema::Releases>
 
 =cut
 
 __PACKAGE__->has_many(
-  "jobsetevals",
-  "Hydra::Schema::JobsetEvals",
+  "releases",
+  "Hydra::Schema::Releases",
   { "foreign.project" => "self.name" },
+  {},
+);
+
+=head2 viewjobs
+
+Type: has_many
+
+Related object: L<Hydra::Schema::ViewJobs>
+
+=cut
+
+__PACKAGE__->has_many(
+  "viewjobs",
+  "Hydra::Schema::ViewJobs",
+  { "foreign.project" => "self.name" },
+  {},
+);
+
+=head2 views
+
+Type: has_many
+
+Related object: L<Hydra::Schema::Views>
+
+=cut
+
+__PACKAGE__->has_many(
+  "views",
+  "Hydra::Schema::Views",
+  { "foreign.project" => "self.name" },
+  {},
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-06-04 16:32:43
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:b6DRXQBuBX5/tm+3VPO9yA
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:cnheEOmK/5fCX1ui4OWPog
 # These lines were loaded from '/home/rbvermaa/src/hydra/src/lib/Hydra/Schema/Projects.pm' found in @INC.
 # They are now part of the custom portion of this file
 # for you to hand-edit.  If you do not either delete
diff --git a/src/lib/Hydra/Schema/ReleaseMembers.pm b/src/lib/Hydra/Schema/ReleaseMembers.pm
index 3ff3c72b..c4871391 100644
--- a/src/lib/Hydra/Schema/ReleaseMembers.pm
+++ b/src/lib/Hydra/Schema/ReleaseMembers.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::ReleaseMembers;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::ReleaseMembers
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::ReleaseMembers
+=head1 TABLE: C<ReleaseMembers>
 
 =cut
 
@@ -21,74 +25,68 @@ __PACKAGE__->table("ReleaseMembers");
 
 =head2 project
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 release_
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 build
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 description
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "project",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "release_",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "build",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_foreign_key => 1, is_nullable => 0 },
   "description",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</project>
+
+=item * L</release_>
+
+=item * L</build>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("project", "release_", "build");
 
 =head1 RELATIONS
 
+=head2 build
+
+Type: belongs_to
+
+Related object: L<Hydra::Schema::Builds>
+
+=cut
+
+__PACKAGE__->belongs_to("build", "Hydra::Schema::Builds", { id => "build" }, {});
+
 =head2 project
 
 Type: belongs_to
@@ -114,18 +112,8 @@ __PACKAGE__->belongs_to(
   {},
 );
 
-=head2 build
 
-Type: belongs_to
-
-Related object: L<Hydra::Schema::Builds>
-
-=cut
-
-__PACKAGE__->belongs_to("build", "Hydra::Schema::Builds", { id => "build" }, {});
-
-
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:QTByw0fKIXFIYYSXCtKyyw
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:SBMfzENPE0BjEwc2HAK7IA
 
 1;
diff --git a/src/lib/Hydra/Schema/Releases.pm b/src/lib/Hydra/Schema/Releases.pm
index bf1d8f24..fedf17b4 100644
--- a/src/lib/Hydra/Schema/Releases.pm
+++ b/src/lib/Hydra/Schema/Releases.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::Releases;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::Releases
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::Releases
+=head1 TABLE: C<Releases>
 
 =cut
 
@@ -21,66 +25,50 @@ __PACKAGE__->table("Releases");
 
 =head2 project
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 name
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 timestamp
 
-  data_type: integer
-  default_value: undef
+  data_type: 'integer'
   is_nullable: 0
-  size: undef
 
 =head2 description
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "project",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "name",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "timestamp",
-  {
-    data_type => "integer",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "integer", is_nullable => 0 },
   "description",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</project>
+
+=item * L</name>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("project", "name");
 
 =head1 RELATIONS
@@ -110,10 +98,11 @@ __PACKAGE__->has_many(
     "foreign.project"  => "self.project",
     "foreign.release_" => "self.name",
   },
+  {},
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:tUuuHG9duLzmDhUywM+ErQ
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:W6GOMPv7hc2EAdVaBOvc3A
 
 1;
diff --git a/src/lib/Hydra/Schema/SchemaVersion.pm b/src/lib/Hydra/Schema/SchemaVersion.pm
new file mode 100644
index 00000000..4bc90886
--- /dev/null
+++ b/src/lib/Hydra/Schema/SchemaVersion.pm
@@ -0,0 +1,57 @@
+use utf8;
+package Hydra::Schema::SchemaVersion;
+
+# Created by DBIx::Class::Schema::Loader
+# DO NOT MODIFY THE FIRST PART OF THIS FILE
+
+=head1 NAME
+
+Hydra::Schema::SchemaVersion
+
+=cut
+
+use strict;
+use warnings;
+
+use base 'DBIx::Class::Core';
+
+=head1 TABLE: C<SchemaVersion>
+
+=cut
+
+__PACKAGE__->table("SchemaVersion");
+
+=head1 ACCESSORS
+
+=head2 version
+
+  data_type: 'integer'
+  is_auto_increment: 1
+  is_nullable: 0
+
+=cut
+
+__PACKAGE__->add_columns(
+  "version",
+  { data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
+);
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</version>
+
+=back
+
+=cut
+
+__PACKAGE__->set_primary_key("version");
+
+
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:F/jsSRq8pxR4mWq/N4qYGw
+
+
+# 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/SystemTypes.pm b/src/lib/Hydra/Schema/SystemTypes.pm
index 134f97af..998b97c6 100644
--- a/src/lib/Hydra/Schema/SystemTypes.pm
+++ b/src/lib/Hydra/Schema/SystemTypes.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::SystemTypes;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::SystemTypes
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::SystemTypes
+=head1 TABLE: C<SystemTypes>
 
 =cut
 
@@ -21,35 +25,38 @@ __PACKAGE__->table("SystemTypes");
 
 =head2 system
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 maxconcurrent
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 2
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "system",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "maxconcurrent",
-  { data_type => "integer", default_value => 2, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 2, is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</system>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("system");
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:cY3UlAd8a/jARP5klFLP6g
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:zg8db3Cbi0QOv+gLJqH8cQ
 
 1;
diff --git a/src/lib/Hydra/Schema/UriRevMapper.pm b/src/lib/Hydra/Schema/UriRevMapper.pm
index 1bd01df8..7d524e51 100644
--- a/src/lib/Hydra/Schema/UriRevMapper.pm
+++ b/src/lib/Hydra/Schema/UriRevMapper.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::UriRevMapper;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::UriRevMapper
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::UriRevMapper
+=head1 TABLE: C<UriRevMapper>
 
 =cut
 
@@ -21,41 +25,38 @@ __PACKAGE__->table("UriRevMapper");
 
 =head2 baseuri
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 uri
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "baseuri",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "uri",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</baseuri>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("baseuri");
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 12:58:30
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:r3ricsHLJ6t/8kg+5Gu5Qw
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:hzKzGAgAiCfU0nBOiDnjWw
 
 
 # You can replace this text with custom content, and it will be preserved on regeneration
diff --git a/src/lib/Hydra/Schema/UserRoles.pm b/src/lib/Hydra/Schema/UserRoles.pm
index fd841a5e..e00f7805 100644
--- a/src/lib/Hydra/Schema/UserRoles.pm
+++ b/src/lib/Hydra/Schema/UserRoles.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::UserRoles;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::UserRoles
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::UserRoles
+=head1 TABLE: C<UserRoles>
 
 =cut
 
@@ -21,38 +25,36 @@ __PACKAGE__->table("UserRoles");
 
 =head2 username
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 role
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "username",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "role",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</username>
+
+=item * L</role>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("username", "role");
 
 =head1 RELATIONS
@@ -73,7 +75,7 @@ __PACKAGE__->belongs_to(
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:qEshVHXf4YQ0SEVeZ9cVLQ
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:TySGsLoTpeSuThILIXUaVg
 
 1;
diff --git a/src/lib/Hydra/Schema/Users.pm b/src/lib/Hydra/Schema/Users.pm
index 5c03d013..8dd80ac1 100644
--- a/src/lib/Hydra/Schema/Users.pm
+++ b/src/lib/Hydra/Schema/Users.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::Users;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::Users
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::Users
+=head1 TABLE: C<Users>
 
 =cut
 
@@ -21,103 +25,72 @@ __PACKAGE__->table("Users");
 
 =head2 username
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 fullname
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 emailaddress
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 password
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 emailonerror
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "username",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "fullname",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "emailaddress",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "password",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "emailonerror",
-  { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</username>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("username");
 
 =head1 RELATIONS
 
-=head2 userroles
+=head2 newsitems
 
 Type: has_many
 
-Related object: L<Hydra::Schema::UserRoles>
+Related object: L<Hydra::Schema::NewsItems>
 
 =cut
 
 __PACKAGE__->has_many(
-  "userroles",
-  "Hydra::Schema::UserRoles",
-  { "foreign.username" => "self.username" },
-);
-
-=head2 projects
-
-Type: has_many
-
-Related object: L<Hydra::Schema::Projects>
-
-=cut
-
-__PACKAGE__->has_many(
-  "projects",
-  "Hydra::Schema::Projects",
-  { "foreign.owner" => "self.username" },
+  "newsitems",
+  "Hydra::Schema::NewsItems",
+  { "foreign.author" => "self.username" },
+  {},
 );
 
 =head2 projectmembers
@@ -132,25 +105,42 @@ __PACKAGE__->has_many(
   "projectmembers",
   "Hydra::Schema::ProjectMembers",
   { "foreign.username" => "self.username" },
+  {},
 );
 
-=head2 newsitems
+=head2 projects
 
 Type: has_many
 
-Related object: L<Hydra::Schema::NewsItems>
+Related object: L<Hydra::Schema::Projects>
 
 =cut
 
 __PACKAGE__->has_many(
-  "newsitems",
-  "Hydra::Schema::NewsItems",
-  { "foreign.author" => "self.username" },
+  "projects",
+  "Hydra::Schema::Projects",
+  { "foreign.owner" => "self.username" },
+  {},
+);
+
+=head2 userroles
+
+Type: has_many
+
+Related object: L<Hydra::Schema::UserRoles>
+
+=cut
+
+__PACKAGE__->has_many(
+  "userroles",
+  "Hydra::Schema::UserRoles",
+  { "foreign.username" => "self.username" },
+  {},
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05000 @ 2010-04-27 15:13:51
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:C5uoz6EYyYL442zRYmXkyw
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:3fmr8WMAE9Dg7TKom76YIQ
 # These lines were loaded from '/home/rbvermaa/src/hydra/src/lib/Hydra/Schema/Users.pm' found in @INC.
 # They are now part of the custom portion of this file
 # for you to hand-edit.  If you do not either delete
diff --git a/src/lib/Hydra/Schema/ViewJobs.pm b/src/lib/Hydra/Schema/ViewJobs.pm
index 4c258716..716183b3 100644
--- a/src/lib/Hydra/Schema/ViewJobs.pm
+++ b/src/lib/Hydra/Schema/ViewJobs.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::ViewJobs;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::ViewJobs
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::ViewJobs
+=head1 TABLE: C<ViewJobs>
 
 =cut
 
@@ -21,114 +25,85 @@ __PACKAGE__->table("ViewJobs");
 
 =head2 project
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 view_
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 job
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 attrs
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 isprimary
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =head2 description
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 jobset
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 autorelease
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "project",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "view_",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "job",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "attrs",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "isprimary",
-  { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 0 },
   "description",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "jobset",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "autorelease",
-  { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</project>
+
+=item * L</view_>
+
+=item * L</job>
+
+=item * L</attrs>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("project", "view_", "job", "attrs");
 
 =head1 RELATIONS
@@ -159,7 +134,7 @@ __PACKAGE__->belongs_to(
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+aFIv2sSlgMWKcQuWnq0fg
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:U9/ovaBs9kFO3flG/MZ5uA
 
 1;
diff --git a/src/lib/Hydra/Schema/Views.pm b/src/lib/Hydra/Schema/Views.pm
index c3b2412d..977a421e 100644
--- a/src/lib/Hydra/Schema/Views.pm
+++ b/src/lib/Hydra/Schema/Views.pm
@@ -1,17 +1,21 @@
+use utf8;
 package Hydra::Schema::Views;
 
 # Created by DBIx::Class::Schema::Loader
 # DO NOT MODIFY THE FIRST PART OF THIS FILE
 
+=head1 NAME
+
+Hydra::Schema::Views
+
+=cut
+
 use strict;
 use warnings;
 
 use base 'DBIx::Class::Core';
 
-
-=head1 NAME
-
-Hydra::Schema::Views
+=head1 TABLE: C<Views>
 
 =cut
 
@@ -21,61 +25,51 @@ __PACKAGE__->table("Views");
 
 =head2 project
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_foreign_key: 1
   is_nullable: 0
-  size: undef
 
 =head2 name
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 0
-  size: undef
 
 =head2 description
 
-  data_type: text
-  default_value: undef
+  data_type: 'text'
   is_nullable: 1
-  size: undef
 
 =head2 keep
 
-  data_type: integer
+  data_type: 'integer'
   default_value: 0
   is_nullable: 0
-  size: undef
 
 =cut
 
 __PACKAGE__->add_columns(
   "project",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_foreign_key => 1,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
   "name",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 0,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 0 },
   "description",
-  {
-    data_type => "text",
-    default_value => undef,
-    is_nullable => 1,
-    size => undef,
-  },
+  { data_type => "text", is_nullable => 1 },
   "keep",
-  { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
+  { data_type => "integer", default_value => 0, is_nullable => 0 },
 );
+
+=head1 PRIMARY KEY
+
+=over 4
+
+=item * L</project>
+
+=item * L</name>
+
+=back
+
+=cut
+
 __PACKAGE__->set_primary_key("project", "name");
 
 =head1 RELATIONS
@@ -102,10 +96,11 @@ __PACKAGE__->has_many(
   "viewjobs",
   "Hydra::Schema::ViewJobs",
   { "foreign.project" => "self.project", "foreign.view_" => "self.name" },
+  {},
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-02-25 10:29:41
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Ziocg+WjpiRs3lmlPJL4YA
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2011-12-05 14:15:43
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:cP9XYKw4y9QL+PDJYy9M5w
 
 1;
diff --git a/src/sql/Makefile.am b/src/sql/Makefile.am
index a68c4286..5e374945 100644
--- a/src/sql/Makefile.am
+++ b/src/sql/Makefile.am
@@ -12,4 +12,4 @@ hydra-sqlite.sql: hydra.sql
 update-dbix: hydra-sqlite.sql
 	rm -f tmp.sqlite
 	sqlite3 tmp.sqlite < hydra-sqlite.sql
-	perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:../lib -e 'make_schema_at("Hydra::Schema", { relationships => 1, moniker_map => sub {return $$_;} }, ["dbi:SQLite:tmp.sqlite"])'
+	perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:../lib -e 'make_schema_at("Hydra::Schema", { naming => { ALL => "v5" }, relationships => 1, moniker_map => sub {return "$$_";} }, ["dbi:SQLite:tmp.sqlite"])'
diff --git a/src/sql/hydra.sql b/src/sql/hydra.sql
index 5d418800..2432cf4b 100644
--- a/src/sql/hydra.sql
+++ b/src/sql/hydra.sql
@@ -1,3 +1,11 @@
+-- Singleton table to keep track of the schema version.
+create table SchemaVersion (
+    version       integer not null
+);
+
+insert into SchemaVersion (version) values (1);
+
+
 create table Users (
     userName      text primary key not null,
     fullName      text,