--- /dev/null
+#!/usr/bin/perl
+# debbugs-installsql installs the SQL database using DBIx::Class::DeploymentHandler
+# and is released under the terms of the GNU GPL version 3, or any
+# later version, at your option. See the file README and COPYING for
+# more information.
+# Copyright 2013-2014 by Don Armstrong <don@donarmstrong.com>.
+
+
+use warnings;
+use strict;
+
+use Getopt::Long;
+use Pod::Usage;
+
+=head1 NAME
+
+debbugs-installsql - installs the SQL database using DBIx::Class::DeploymentHandler
+
+=head1 SYNOPSIS
+
+debbugs-installsql [ --upgrade | --install ]
+
+ Options:
+ --service postgresql service to connect to
+ --sysconfdir postgresql system configuration directory
+ --deployment-dir SQL deployment directory
+ --debug, -d debugging level (Default 0)
+ --help, -h display this help
+ --man, -m display manual
+
+=head1 OPTIONS
+
+=over
+
+=item B<--service>
+
+Postgresl service to connect to (defaults to debbugs)
+
+=item B<--sysconfdir>
+
+Postgresql sysconf dir. May also be set using the PGSYSCONFDIR
+environmental variable (which this option overrides).
+
+=item B<--deployment-dir>
+
+Deployment directory (defaults to /usr/share/debbugs/sqldeployment)
+
+=item B<--debug, -d>
+
+Debug verbosity. (Default 0)
+
+=item B<--help, -h>
+
+Display brief usage information.
+
+=item B<--man, -m>
+
+Display this manual.
+
+=back
+
+=head1 EXAMPLES
+
+debbugs-installsql
+
+=cut
+
+
+use vars qw($DEBUG);
+
+use Debbugs::DB;
+use aliased 'DBIx::Class::DeploymentHandler' => 'DH';
+
+my %options = (debug => 0,
+ help => 0,
+ man => 0,
+ developer_prepare => 0,
+ overwrite_deployment => 0,
+ service => 'debbugs',
+ deployment_dir => '/usr/share/debbugs/sqldeployment',
+ );
+
+GetOptions(\%options,
+ 'service|s',
+ 'sysconfdir|c',
+ 'install',
+ 'upgrade',
+ 'current_version|current-version',
+ 'developer_prepare|developer-prepare',
+ 'overwrite_deployment|overwrite-deployment',
+ 'deployment_dir|deployment-dir=s',
+ 'debug|d+','help|h|?','man|m');
+
+pod2usage() if $options{help};
+pod2usage({verbose=>2}) if $options{man};
+
+$DEBUG = $options{debug};
+
+my @USAGE_ERRORS;
+
+my @exclusive_options = qw(install upgrade current_version);
+if (1 < grep {exists $options{$_}} @exclusive_options) {
+ push @USAGE_ERRORS,"You must only give one of the ".
+ join(', ',map {s/_/-/g; "--".$_} @exclusive_options).
+ " options";
+}
+if (not grep {exists $options{$_}} @exclusive_options) {
+ $options{current_version} = 1;
+}
+
+pod2usage(join("\n",@USAGE_ERRORS)) if @USAGE_ERRORS;
+
+if (exists $options{sysconfdir}) {
+ if (not defined $options{sysconfdir} or not length $options{sysconfdir}) {
+ delete $ENV{PGSYSCONFDIR};
+ } else {
+ $ENV{PGSYSCONFDIR} = $options{sysconfdir};
+ }
+}
+
+
+my $schema = Debbugs::DB->connect('dbi:Pg:service='.$options{service}) or
+ die "Unable to connect to database";
+
+
+my $dh = DH->new({schema => $schema,
+ force_overwrite => $options{overwrite_deployment},
+ script_directory => $options{deployment_dir},
+ databases => 'PostgreSQL'
+ });
+
+if ($options{current_version}) {
+ print "The current database version is: ".$dh->database_version."\n";
+ exit 0;
+} elsif ($options{install}) {
+ if ($options{developer_prepare}) {
+ $dh->prepare_install;
+ } else {
+ $dh->install;
+ }
+} elsif ($options{upgrade}) {
+ if ($options{developer_prepare}) {
+ $dh->prepare_deploy;
+ $dh->prepare_upgrade;
+ } else {
+ $dh->upgrade;
+ }
+}
+
+
+__END__
--- /dev/null
+--
+-- Created by SQL::Translator::Producer::PostgreSQL
+-- Created on Wed Aug 6 09:18:36 2014
+--
+;
+--
+-- Table: arch.
+--
+CREATE TABLE "arch" (
+ "id" serial NOT NULL,
+ "arch" text NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "arch_arch_key" UNIQUE ("arch")
+);
+
+;
+--
+-- Table: bin_pkg.
+--
+CREATE TABLE "bin_pkg" (
+ "id" serial NOT NULL,
+ "pkg" text NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "bin_pkg_pkg_key" UNIQUE ("pkg")
+);
+
+;
+--
+-- Table: binary_versions.
+--
+CREATE TABLE "binary_versions" (
+ "src_pkg" text,
+ "src_ver" debversion,
+ "bin_pkg" text,
+ "arch" text,
+ "bin_ver" debversion,
+ "src_ver_based_on" debversion,
+ "src_pkg_based_on" text
+);
+
+;
+--
+-- Table: bug_package.
+--
+CREATE TABLE "bug_package" (
+ "bug" integer,
+ "pkg_id" integer,
+ "pkg_type" text,
+ "package" text
+);
+
+;
+--
+-- Table: column_comments.
+--
+CREATE TABLE "column_comments" (
+ "table_name" text NOT NULL,
+ "column_name" text NOT NULL,
+ "comment_text" text NOT NULL,
+ CONSTRAINT "column_comments_table_name_column_name_idx" UNIQUE ("table_name", "column_name")
+);
+
+;
+--
+-- Table: correspondent.
+--
+CREATE TABLE "correspondent" (
+ "id" serial NOT NULL,
+ "addr" text NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "correspondent_addr_idx" UNIQUE ("addr")
+);
+
+;
+--
+-- Table: dbix_class_deploymenthandler_versions.
+--
+CREATE TABLE "dbix_class_deploymenthandler_versions" (
+ "id" serial NOT NULL,
+ "version" character varying(50) NOT NULL,
+ "ddl" text,
+ "upgrade_sql" text,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "dbix_class_deploymenthandler_versions_version" UNIQUE ("version")
+);
+
+;
+--
+-- Table: message.
+--
+CREATE TABLE "message" (
+ "id" serial NOT NULL,
+ "msgid" text,
+ "from_complete" text,
+ "from_addr" text,
+ "to_complete" text,
+ "to_addr" text,
+ "subject" text DEFAULT '' NOT NULL,
+ "sent_date" timestamp with time zone,
+ "refs" text DEFAULT '' NOT NULL,
+ "spam_score" double precision,
+ "is_spam" boolean DEFAULT false,
+ PRIMARY KEY ("id")
+);
+
+;
+--
+-- Table: severity.
+--
+CREATE TABLE "severity" (
+ "id" serial NOT NULL,
+ "severity" text NOT NULL,
+ "ordering" integer DEFAULT 5 NOT NULL,
+ "strong" boolean DEFAULT false,
+ "obsolete" boolean DEFAULT false,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "severity_severity_idx" UNIQUE ("severity")
+);
+
+;
+--
+-- Table: src_pkg.
+--
+CREATE TABLE "src_pkg" (
+ "id" serial NOT NULL,
+ "pkg" text NOT NULL,
+ "pseduopkg" boolean DEFAULT false,
+ "alias_of" integer,
+ "creation" timestamp with time zone DEFAULT current_timestamp,
+ "disabled" timestamp with time zone,
+ "last_modified" timestamp with time zone DEFAULT current_timestamp,
+ "obsolete" boolean DEFAULT false,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "src_pkg_pkg_disabled" UNIQUE ("pkg", "disabled")
+);
+CREATE INDEX "src_pkg_idx_alias_of" on "src_pkg" ("alias_of");
+
+;
+--
+-- Table: suite.
+--
+CREATE TABLE "suite" (
+ "id" serial NOT NULL,
+ "suite_name" text NOT NULL,
+ "version" text,
+ "codename" text,
+ "active" boolean DEFAULT true,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "suite_suite_name_key" UNIQUE ("suite_name")
+);
+
+;
+--
+-- Table: table_comments.
+--
+CREATE TABLE "table_comments" (
+ "table_name" text NOT NULL,
+ "comment_text" text NOT NULL,
+ CONSTRAINT "table_comments_table_name_key" UNIQUE ("table_name")
+);
+
+;
+--
+-- Table: tag.
+--
+CREATE TABLE "tag" (
+ "id" serial NOT NULL,
+ "tag" text NOT NULL,
+ "obsolete" boolean DEFAULT false,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "tag_tag_key" UNIQUE ("tag")
+);
+
+;
+--
+-- Table: correspondent_full_name.
+--
+CREATE TABLE "correspondent_full_name" (
+ "id" serial NOT NULL,
+ "correspondent" integer NOT NULL,
+ "full_name" text NOT NULL,
+ "last_seen" timestamp DEFAULT current_timestamp NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "correspondent_full_name_correspondent_full_name_idx" UNIQUE ("correspondent", "full_name")
+);
+CREATE INDEX "correspondent_full_name_idx_correspondent" on "correspondent_full_name" ("correspondent");
+
+;
+--
+-- Table: maintainer.
+--
+CREATE TABLE "maintainer" (
+ "id" serial NOT NULL,
+ "name" text NOT NULL,
+ "correspondent" integer NOT NULL,
+ "created" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ "modified" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "maintainer_name_idx" UNIQUE ("name")
+);
+CREATE INDEX "maintainer_idx_correspondent" on "maintainer" ("correspondent");
+
+;
+--
+-- Table: message_refs.
+--
+CREATE TABLE "message_refs" (
+ "id" serial NOT NULL,
+ "message" integer NOT NULL,
+ "refs" integer NOT NULL,
+ "inferred" boolean DEFAULT false,
+ "primary_ref" boolean DEFAULT false,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "message_refs_message_refs_idx" UNIQUE ("message", "refs")
+);
+CREATE INDEX "message_refs_idx_message" on "message_refs" ("message");
+CREATE INDEX "message_refs_idx_refs" on "message_refs" ("refs");
+
+;
+--
+-- Table: bug.
+--
+CREATE TABLE "bug" (
+ "id" integer NOT NULL,
+ "creation" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ "log_modified" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ "last_modified" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ "archived" boolean DEFAULT false NOT NULL,
+ "unarchived" timestamp with time zone,
+ "forwarded" text DEFAULT '' NOT NULL,
+ "summary" text DEFAULT '' NOT NULL,
+ "outlook" text DEFAULT '' NOT NULL,
+ "subject" text NOT NULL,
+ "severity" integer NOT NULL,
+ "done" integer,
+ "done_full" text DEFAULT '' NOT NULL,
+ "owner" integer,
+ "owner_full" text DEFAULT '' NOT NULL,
+ "submitter" integer,
+ "submitter_full" text DEFAULT '' NOT NULL,
+ "unknown_packages" text DEFAULT '' NOT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE INDEX "bug_idx_done" on "bug" ("done");
+CREATE INDEX "bug_idx_owner" on "bug" ("owner");
+CREATE INDEX "bug_idx_severity" on "bug" ("severity");
+CREATE INDEX "bug_idx_submitter" on "bug" ("submitter");
+
+;
+--
+-- Table: message_correspondent.
+--
+CREATE TABLE "message_correspondent" (
+ "id" serial NOT NULL,
+ "message" integer NOT NULL,
+ "correspondent" integer NOT NULL,
+ "correspondent_type" character varying DEFAULT 'to' NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "message_correspondent_message_correspondent_correspondent_t_idx" UNIQUE ("message", "correspondent", "correspondent_type")
+);
+CREATE INDEX "message_correspondent_idx_correspondent" on "message_correspondent" ("correspondent");
+CREATE INDEX "message_correspondent_idx_message" on "message_correspondent" ("message");
+
+;
+--
+-- Table: bug_blocks.
+--
+CREATE TABLE "bug_blocks" (
+ "id" serial NOT NULL,
+ "bug" integer NOT NULL,
+ "blocks" integer NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "bug_blocks_bug_id_blocks_idx" UNIQUE ("bug", "blocks")
+);
+CREATE INDEX "bug_blocks_idx_blocks" on "bug_blocks" ("blocks");
+CREATE INDEX "bug_blocks_idx_bug" on "bug_blocks" ("bug");
+
+;
+--
+-- Table: bug_merged.
+--
+CREATE TABLE "bug_merged" (
+ "id" serial NOT NULL,
+ "bug" integer NOT NULL,
+ "merged" integer NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "bug_merged_bug_id_merged_idx" UNIQUE ("bug", "merged")
+);
+CREATE INDEX "bug_merged_idx_bug" on "bug_merged" ("bug");
+CREATE INDEX "bug_merged_idx_merged" on "bug_merged" ("merged");
+
+;
+--
+-- Table: src_ver.
+--
+CREATE TABLE "src_ver" (
+ "id" serial NOT NULL,
+ "src_pkg" integer NOT NULL,
+ "ver" debversion NOT NULL,
+ "maintainer" integer,
+ "upload_date" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ "based_on" integer,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "src_ver_src_pkg_id_ver" UNIQUE ("src_pkg", "ver")
+);
+CREATE INDEX "src_ver_idx_based_on" on "src_ver" ("based_on");
+CREATE INDEX "src_ver_idx_maintainer" on "src_ver" ("maintainer");
+CREATE INDEX "src_ver_idx_src_pkg" on "src_ver" ("src_pkg");
+
+;
+--
+-- Table: bug_binpackage.
+--
+CREATE TABLE "bug_binpackage" (
+ "id" serial NOT NULL,
+ "bug" integer NOT NULL,
+ "bin_pkg" integer NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "bug_binpackage_id_pkg" UNIQUE ("bug", "bin_pkg")
+);
+CREATE INDEX "bug_binpackage_idx_bin_pkg" on "bug_binpackage" ("bin_pkg");
+CREATE INDEX "bug_binpackage_idx_bug" on "bug_binpackage" ("bug");
+
+;
+--
+-- Table: bug_message.
+--
+CREATE TABLE "bug_message" (
+ "id" serial NOT NULL,
+ "bug" integer NOT NULL,
+ "message" integer NOT NULL,
+ "message_number" integer NOT NULL,
+ "bug_log_offset" integer,
+ "offset_valid" timestamp with time zone,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "bug_message_bug_message_idx" UNIQUE ("bug", "message")
+);
+CREATE INDEX "bug_message_idx_bug" on "bug_message" ("bug");
+CREATE INDEX "bug_message_idx_message" on "bug_message" ("message");
+
+;
+--
+-- Table: bug_srcpackage.
+--
+CREATE TABLE "bug_srcpackage" (
+ "id" serial NOT NULL,
+ "bug" integer NOT NULL,
+ "src_pkg" integer NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "bug_srcpackage_id_pkg" UNIQUE ("bug", "src_pkg")
+);
+CREATE INDEX "bug_srcpackage_idx_bug" on "bug_srcpackage" ("bug");
+CREATE INDEX "bug_srcpackage_idx_src_pkg" on "bug_srcpackage" ("src_pkg");
+
+;
+--
+-- Table: bug_tag.
+--
+CREATE TABLE "bug_tag" (
+ "id" serial NOT NULL,
+ "bug" integer NOT NULL,
+ "tag" integer NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "bug_tag_bug_tag" UNIQUE ("bug", "tag")
+);
+CREATE INDEX "bug_tag_idx_bug" on "bug_tag" ("bug");
+CREATE INDEX "bug_tag_idx_tag" on "bug_tag" ("tag");
+
+;
+--
+-- Table: bug_status_cache.
+--
+CREATE TABLE "bug_status_cache" (
+ "id" serial NOT NULL,
+ "bug" integer NOT NULL,
+ "suite" integer,
+ "arch" integer,
+ "status" character varying NOT NULL,
+ "modified" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ "asof" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "bug_status_cache_bug_suite_arch_idx" UNIQUE ("bug", "suite", "arch")
+);
+CREATE INDEX "bug_status_cache_idx_arch" on "bug_status_cache" ("arch");
+CREATE INDEX "bug_status_cache_idx_bug" on "bug_status_cache" ("bug");
+CREATE INDEX "bug_status_cache_idx_suite" on "bug_status_cache" ("suite");
+
+;
+--
+-- Table: src_associations.
+--
+CREATE TABLE "src_associations" (
+ "id" serial NOT NULL,
+ "suite" integer NOT NULL,
+ "source" integer NOT NULL,
+ "created" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ "modified" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE INDEX "src_associations_idx_source" on "src_associations" ("source");
+CREATE INDEX "src_associations_idx_suite" on "src_associations" ("suite");
+
+;
+--
+-- Table: bin_ver.
+--
+CREATE TABLE "bin_ver" (
+ "id" serial NOT NULL,
+ "bin_pkg" integer NOT NULL,
+ "src_ver" integer NOT NULL,
+ "arch" integer NOT NULL,
+ "ver" debversion NOT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE INDEX "bin_ver_idx_arch" on "bin_ver" ("arch");
+CREATE INDEX "bin_ver_idx_bin_pkg" on "bin_ver" ("bin_pkg");
+CREATE INDEX "bin_ver_idx_src_ver" on "bin_ver" ("src_ver");
+
+;
+--
+-- Table: bug_ver.
+--
+CREATE TABLE "bug_ver" (
+ "id" serial NOT NULL,
+ "bug" integer NOT NULL,
+ "ver_string" text,
+ "src_pkg" integer,
+ "src_ver" integer,
+ "found" boolean DEFAULT true NOT NULL,
+ "creation" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ "last_modified" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ PRIMARY KEY ("id"),
+ CONSTRAINT "bug_ver_bug_ver_string_found_idx" UNIQUE ("bug", "ver_string", "found")
+);
+CREATE INDEX "bug_ver_idx_bug" on "bug_ver" ("bug");
+CREATE INDEX "bug_ver_idx_src_pkg" on "bug_ver" ("src_pkg");
+CREATE INDEX "bug_ver_idx_src_ver" on "bug_ver" ("src_ver");
+
+;
+--
+-- Table: bin_associations.
+--
+CREATE TABLE "bin_associations" (
+ "id" serial NOT NULL,
+ "suite" integer NOT NULL,
+ "bin" integer NOT NULL,
+ "created" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ "modified" timestamp with time zone DEFAULT current_timestamp NOT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE INDEX "bin_associations_idx_bin" on "bin_associations" ("bin");
+CREATE INDEX "bin_associations_idx_suite" on "bin_associations" ("suite");
+
+;
+--
+-- Foreign Key Definitions
+--
+
+;
+ALTER TABLE "src_pkg" ADD CONSTRAINT "src_pkg_fk_alias_of" FOREIGN KEY ("alias_of")
+ REFERENCES "src_pkg" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "correspondent_full_name" ADD CONSTRAINT "correspondent_full_name_fk_correspondent" FOREIGN KEY ("correspondent")
+ REFERENCES "correspondent" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "maintainer" ADD CONSTRAINT "maintainer_fk_correspondent" FOREIGN KEY ("correspondent")
+ REFERENCES "correspondent" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "message_refs" ADD CONSTRAINT "message_refs_fk_message" FOREIGN KEY ("message")
+ REFERENCES "message" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "message_refs" ADD CONSTRAINT "message_refs_fk_refs" FOREIGN KEY ("refs")
+ REFERENCES "message" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bug" ADD CONSTRAINT "bug_fk_done" FOREIGN KEY ("done")
+ REFERENCES "correspondent" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "bug" ADD CONSTRAINT "bug_fk_owner" FOREIGN KEY ("owner")
+ REFERENCES "correspondent" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "bug" ADD CONSTRAINT "bug_fk_severity" FOREIGN KEY ("severity")
+ REFERENCES "severity" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "bug" ADD CONSTRAINT "bug_fk_submitter" FOREIGN KEY ("submitter")
+ REFERENCES "correspondent" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "message_correspondent" ADD CONSTRAINT "message_correspondent_fk_correspondent" FOREIGN KEY ("correspondent")
+ REFERENCES "correspondent" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "message_correspondent" ADD CONSTRAINT "message_correspondent_fk_message" FOREIGN KEY ("message")
+ REFERENCES "message" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bug_blocks" ADD CONSTRAINT "bug_blocks_fk_blocks" FOREIGN KEY ("blocks")
+ REFERENCES "bug" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "bug_blocks" ADD CONSTRAINT "bug_blocks_fk_bug" FOREIGN KEY ("bug")
+ REFERENCES "bug" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "bug_merged" ADD CONSTRAINT "bug_merged_fk_bug" FOREIGN KEY ("bug")
+ REFERENCES "bug" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "bug_merged" ADD CONSTRAINT "bug_merged_fk_merged" FOREIGN KEY ("merged")
+ REFERENCES "bug" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "src_ver" ADD CONSTRAINT "src_ver_fk_based_on" FOREIGN KEY ("based_on")
+ REFERENCES "src_ver" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "src_ver" ADD CONSTRAINT "src_ver_fk_maintainer" FOREIGN KEY ("maintainer")
+ REFERENCES "maintainer" ("id") ON DELETE SET NULL ON UPDATE CASCADE;
+
+;
+ALTER TABLE "src_ver" ADD CONSTRAINT "src_ver_fk_src_pkg" FOREIGN KEY ("src_pkg")
+ REFERENCES "src_pkg" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bug_binpackage" ADD CONSTRAINT "bug_binpackage_fk_bin_pkg" FOREIGN KEY ("bin_pkg")
+ REFERENCES "bin_pkg" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "bug_binpackage" ADD CONSTRAINT "bug_binpackage_fk_bug" FOREIGN KEY ("bug")
+ REFERENCES "bug" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "bug_message" ADD CONSTRAINT "bug_message_fk_bug" FOREIGN KEY ("bug")
+ REFERENCES "bug" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bug_message" ADD CONSTRAINT "bug_message_fk_message" FOREIGN KEY ("message")
+ REFERENCES "message" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bug_srcpackage" ADD CONSTRAINT "bug_srcpackage_fk_bug" FOREIGN KEY ("bug")
+ REFERENCES "bug" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "bug_srcpackage" ADD CONSTRAINT "bug_srcpackage_fk_src_pkg" FOREIGN KEY ("src_pkg")
+ REFERENCES "src_pkg" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bug_tag" ADD CONSTRAINT "bug_tag_fk_bug" FOREIGN KEY ("bug")
+ REFERENCES "bug" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "bug_tag" ADD CONSTRAINT "bug_tag_fk_tag" FOREIGN KEY ("tag")
+ REFERENCES "tag" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+;
+ALTER TABLE "bug_status_cache" ADD CONSTRAINT "bug_status_cache_fk_arch" FOREIGN KEY ("arch")
+ REFERENCES "arch" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bug_status_cache" ADD CONSTRAINT "bug_status_cache_fk_bug" FOREIGN KEY ("bug")
+ REFERENCES "bug" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bug_status_cache" ADD CONSTRAINT "bug_status_cache_fk_suite" FOREIGN KEY ("suite")
+ REFERENCES "suite" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "src_associations" ADD CONSTRAINT "src_associations_fk_source" FOREIGN KEY ("source")
+ REFERENCES "src_ver" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "src_associations" ADD CONSTRAINT "src_associations_fk_suite" FOREIGN KEY ("suite")
+ REFERENCES "suite" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bin_ver" ADD CONSTRAINT "bin_ver_fk_arch" FOREIGN KEY ("arch")
+ REFERENCES "arch" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bin_ver" ADD CONSTRAINT "bin_ver_fk_bin_pkg" FOREIGN KEY ("bin_pkg")
+ REFERENCES "bin_pkg" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bin_ver" ADD CONSTRAINT "bin_ver_fk_src_ver" FOREIGN KEY ("src_ver")
+ REFERENCES "src_ver" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bug_ver" ADD CONSTRAINT "bug_ver_fk_bug" FOREIGN KEY ("bug")
+ REFERENCES "bug" ("id") ON DELETE RESTRICT ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bug_ver" ADD CONSTRAINT "bug_ver_fk_src_pkg" FOREIGN KEY ("src_pkg")
+ REFERENCES "src_pkg" ("id") ON DELETE SET NULL ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bug_ver" ADD CONSTRAINT "bug_ver_fk_src_ver" FOREIGN KEY ("src_ver")
+ REFERENCES "src_ver" ("id") ON DELETE SET NULL ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bin_associations" ADD CONSTRAINT "bin_associations_fk_bin" FOREIGN KEY ("bin")
+ REFERENCES "bin_ver" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
+ALTER TABLE "bin_associations" ADD CONSTRAINT "bin_associations_fk_suite" FOREIGN KEY ("suite")
+ REFERENCES "suite" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+;
--- /dev/null
+---
+schema:
+ procedures: {}
+ tables:
+ arch:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - arch
+ match_type: ''
+ name: arch_arch_key
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ fields:
+ arch:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: arch
+ order: 2
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ indices: []
+ name: arch
+ options: []
+ order: 1
+ bin_associations:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - bin
+ match_type: ''
+ name: bin_associations_fk_bin
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: bin_ver
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - suite
+ match_type: ''
+ name: bin_associations_fk_suite
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: suite
+ type: FOREIGN KEY
+ fields:
+ bin:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: bin
+ order: 3
+ size:
+ - 0
+ created:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: created
+ order: 4
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ modified:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: modified
+ order: 5
+ size:
+ - 0
+ suite:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: suite
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - bin
+ name: bin_associations_idx_bin
+ options: []
+ type: NORMAL
+ - fields:
+ - suite
+ name: bin_associations_idx_suite
+ options: []
+ type: NORMAL
+ name: bin_associations
+ options: []
+ order: 30
+ bin_pkg:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - pkg
+ match_type: ''
+ name: bin_pkg_pkg_key
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ pkg:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: pkg
+ order: 2
+ size:
+ - 0
+ indices: []
+ name: bin_pkg
+ options: []
+ order: 2
+ bin_ver:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - arch
+ match_type: ''
+ name: bin_ver_fk_arch
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: arch
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - bin_pkg
+ match_type: ''
+ name: bin_ver_fk_bin_pkg
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: bin_pkg
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - src_ver
+ match_type: ''
+ name: bin_ver_fk_src_ver
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: src_ver
+ type: FOREIGN KEY
+ fields:
+ arch:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: arch
+ order: 4
+ size:
+ - 0
+ bin_pkg:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: bin_pkg
+ order: 2
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ src_ver:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: src_ver
+ order: 3
+ size:
+ - 0
+ ver:
+ data_type: debversion
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: ver
+ order: 5
+ size:
+ - 0
+ indices:
+ - fields:
+ - arch
+ name: bin_ver_idx_arch
+ options: []
+ type: NORMAL
+ - fields:
+ - bin_pkg
+ name: bin_ver_idx_bin_pkg
+ options: []
+ type: NORMAL
+ - fields:
+ - src_ver
+ name: bin_ver_idx_src_ver
+ options: []
+ type: NORMAL
+ name: bin_ver
+ options: []
+ order: 28
+ binary_versions:
+ constraints: []
+ fields:
+ arch:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: arch
+ order: 4
+ size:
+ - 0
+ bin_pkg:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: bin_pkg
+ order: 3
+ size:
+ - 0
+ bin_ver:
+ data_type: debversion
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: bin_ver
+ order: 5
+ size:
+ - 0
+ src_pkg:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: src_pkg
+ order: 1
+ size:
+ - 0
+ src_pkg_based_on:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: src_pkg_based_on
+ order: 7
+ size:
+ - 0
+ src_ver:
+ data_type: debversion
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: src_ver
+ order: 2
+ size:
+ - 0
+ src_ver_based_on:
+ data_type: debversion
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: src_ver_based_on
+ order: 6
+ size:
+ - 0
+ indices: []
+ name: binary_versions
+ options: []
+ order: 3
+ bug:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - done
+ match_type: ''
+ name: bug_fk_done
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: correspondent
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - owner
+ match_type: ''
+ name: bug_fk_owner
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: correspondent
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - severity
+ match_type: ''
+ name: bug_fk_severity
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: severity
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - submitter
+ match_type: ''
+ name: bug_fk_submitter
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: correspondent
+ type: FOREIGN KEY
+ fields:
+ archived:
+ data_type: boolean
+ default_value: !!perl/ref
+ =: false
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: archived
+ order: 5
+ size:
+ - 0
+ creation:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: creation
+ order: 2
+ size:
+ - 0
+ done:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: done
+ order: 12
+ size:
+ - 0
+ done_full:
+ data_type: text
+ default_value: ''
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: done_full
+ order: 13
+ size:
+ - 0
+ forwarded:
+ data_type: text
+ default_value: ''
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: forwarded
+ order: 7
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ last_modified:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: last_modified
+ order: 4
+ size:
+ - 0
+ log_modified:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: log_modified
+ order: 3
+ size:
+ - 0
+ outlook:
+ data_type: text
+ default_value: ''
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: outlook
+ order: 9
+ size:
+ - 0
+ owner:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: owner
+ order: 14
+ size:
+ - 0
+ owner_full:
+ data_type: text
+ default_value: ''
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: owner_full
+ order: 15
+ size:
+ - 0
+ severity:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: severity
+ order: 11
+ size:
+ - 0
+ subject:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: subject
+ order: 10
+ size:
+ - 0
+ submitter:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: submitter
+ order: 16
+ size:
+ - 0
+ submitter_full:
+ data_type: text
+ default_value: ''
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: submitter_full
+ order: 17
+ size:
+ - 0
+ summary:
+ data_type: text
+ default_value: ''
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: summary
+ order: 8
+ size:
+ - 0
+ unarchived:
+ data_type: timestamp with time zone
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: unarchived
+ order: 6
+ size:
+ - 0
+ unknown_packages:
+ data_type: text
+ default_value: ''
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: unknown_packages
+ order: 18
+ size:
+ - 0
+ indices:
+ - fields:
+ - done
+ name: bug_idx_done
+ options: []
+ type: NORMAL
+ - fields:
+ - owner
+ name: bug_idx_owner
+ options: []
+ type: NORMAL
+ - fields:
+ - severity
+ name: bug_idx_severity
+ options: []
+ type: NORMAL
+ - fields:
+ - submitter
+ name: bug_idx_submitter
+ options: []
+ type: NORMAL
+ name: bug
+ options: []
+ order: 17
+ bug_binpackage:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - bug
+ - bin_pkg
+ match_type: ''
+ name: bug_binpackage_id_pkg
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - bin_pkg
+ match_type: ''
+ name: bug_binpackage_fk_bin_pkg
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: bin_pkg
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - bug
+ match_type: ''
+ name: bug_binpackage_fk_bug
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: bug
+ type: FOREIGN KEY
+ fields:
+ bin_pkg:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: bin_pkg
+ order: 3
+ size:
+ - 0
+ bug:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: bug
+ order: 2
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ indices:
+ - fields:
+ - bin_pkg
+ name: bug_binpackage_idx_bin_pkg
+ options: []
+ type: NORMAL
+ - fields:
+ - bug
+ name: bug_binpackage_idx_bug
+ options: []
+ type: NORMAL
+ name: bug_binpackage
+ options: []
+ order: 22
+ bug_blocks:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - bug
+ - blocks
+ match_type: ''
+ name: bug_blocks_bug_id_blocks_idx
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - blocks
+ match_type: ''
+ name: bug_blocks_fk_blocks
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: bug
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - bug
+ match_type: ''
+ name: bug_blocks_fk_bug
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: bug
+ type: FOREIGN KEY
+ fields:
+ blocks:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: blocks
+ order: 3
+ size:
+ - 0
+ bug:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: bug
+ order: 2
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ indices:
+ - fields:
+ - blocks
+ name: bug_blocks_idx_blocks
+ options: []
+ type: NORMAL
+ - fields:
+ - bug
+ name: bug_blocks_idx_bug
+ options: []
+ type: NORMAL
+ name: bug_blocks
+ options: []
+ order: 19
+ bug_merged:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - bug
+ - merged
+ match_type: ''
+ name: bug_merged_bug_id_merged_idx
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - bug
+ match_type: ''
+ name: bug_merged_fk_bug
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: bug
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - merged
+ match_type: ''
+ name: bug_merged_fk_merged
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: bug
+ type: FOREIGN KEY
+ fields:
+ bug:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: bug
+ order: 2
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ merged:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: merged
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - bug
+ name: bug_merged_idx_bug
+ options: []
+ type: NORMAL
+ - fields:
+ - merged
+ name: bug_merged_idx_merged
+ options: []
+ type: NORMAL
+ name: bug_merged
+ options: []
+ order: 20
+ bug_message:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - bug
+ - message
+ match_type: ''
+ name: bug_message_bug_message_idx
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - bug
+ match_type: ''
+ name: bug_message_fk_bug
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: bug
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - message
+ match_type: ''
+ name: bug_message_fk_message
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: message
+ type: FOREIGN KEY
+ fields:
+ bug:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: bug
+ order: 2
+ size:
+ - 0
+ bug_log_offset:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: bug_log_offset
+ order: 5
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ message:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: message
+ order: 3
+ size:
+ - 0
+ message_number:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: message_number
+ order: 4
+ size:
+ - 0
+ offset_valid:
+ data_type: timestamp with time zone
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: offset_valid
+ order: 6
+ size:
+ - 0
+ indices:
+ - fields:
+ - bug
+ name: bug_message_idx_bug
+ options: []
+ type: NORMAL
+ - fields:
+ - message
+ name: bug_message_idx_message
+ options: []
+ type: NORMAL
+ name: bug_message
+ options: []
+ order: 23
+ bug_package:
+ constraints: []
+ fields:
+ bug:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: bug
+ order: 1
+ size:
+ - 0
+ package:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: package
+ order: 4
+ size:
+ - 0
+ pkg_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: pkg_id
+ order: 2
+ size:
+ - 0
+ pkg_type:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: pkg_type
+ order: 3
+ size:
+ - 0
+ indices: []
+ name: bug_package
+ options: []
+ order: 4
+ bug_srcpackage:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - bug
+ - src_pkg
+ match_type: ''
+ name: bug_srcpackage_id_pkg
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - bug
+ match_type: ''
+ name: bug_srcpackage_fk_bug
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: bug
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - src_pkg
+ match_type: ''
+ name: bug_srcpackage_fk_src_pkg
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: src_pkg
+ type: FOREIGN KEY
+ fields:
+ bug:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: bug
+ order: 2
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ src_pkg:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: src_pkg
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - bug
+ name: bug_srcpackage_idx_bug
+ options: []
+ type: NORMAL
+ - fields:
+ - src_pkg
+ name: bug_srcpackage_idx_src_pkg
+ options: []
+ type: NORMAL
+ name: bug_srcpackage
+ options: []
+ order: 24
+ bug_status_cache:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - bug
+ - suite
+ - arch
+ match_type: ''
+ name: bug_status_cache_bug_suite_arch_idx
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - arch
+ match_type: ''
+ name: bug_status_cache_fk_arch
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: arch
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - bug
+ match_type: ''
+ name: bug_status_cache_fk_bug
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: bug
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - suite
+ match_type: ''
+ name: bug_status_cache_fk_suite
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: suite
+ type: FOREIGN KEY
+ fields:
+ arch:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 1
+ name: arch
+ order: 4
+ size:
+ - 0
+ asof:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: asof
+ order: 7
+ size:
+ - 0
+ bug:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: bug
+ order: 2
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ modified:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: modified
+ order: 6
+ size:
+ - 0
+ status:
+ data_type: enum
+ default_value: ~
+ extra:
+ custom_type_name: bug_status_type
+ list:
+ - pending
+ - forwarded
+ - pending-fixed
+ - fixed
+ - absent
+ - done
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: status
+ order: 5
+ size:
+ - 0
+ suite:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 1
+ name: suite
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - arch
+ name: bug_status_cache_idx_arch
+ options: []
+ type: NORMAL
+ - fields:
+ - bug
+ name: bug_status_cache_idx_bug
+ options: []
+ type: NORMAL
+ - fields:
+ - suite
+ name: bug_status_cache_idx_suite
+ options: []
+ type: NORMAL
+ name: bug_status_cache
+ options: []
+ order: 26
+ bug_tag:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - bug
+ - tag
+ match_type: ''
+ name: bug_tag_bug_tag
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - bug
+ match_type: ''
+ name: bug_tag_fk_bug
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: bug
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - tag
+ match_type: ''
+ name: bug_tag_fk_tag
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: tag
+ type: FOREIGN KEY
+ fields:
+ bug:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: bug
+ order: 2
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ tag:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: tag
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - bug
+ name: bug_tag_idx_bug
+ options: []
+ type: NORMAL
+ - fields:
+ - tag
+ name: bug_tag_idx_tag
+ options: []
+ type: NORMAL
+ name: bug_tag
+ options: []
+ order: 25
+ bug_ver:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - bug
+ - ver_string
+ - found
+ match_type: ''
+ name: bug_ver_bug_ver_string_found_idx
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - bug
+ match_type: ''
+ name: bug_ver_fk_bug
+ on_delete: RESTRICT
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: bug
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - src_pkg
+ match_type: ''
+ name: bug_ver_fk_src_pkg
+ on_delete: SET NULL
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: src_pkg
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - src_ver
+ match_type: ''
+ name: bug_ver_fk_src_ver
+ on_delete: SET NULL
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: src_ver
+ type: FOREIGN KEY
+ fields:
+ bug:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: bug
+ order: 2
+ size:
+ - 0
+ creation:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: creation
+ order: 7
+ size:
+ - 0
+ found:
+ data_type: boolean
+ default_value: !!perl/ref
+ =: true
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: found
+ order: 6
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ last_modified:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: last_modified
+ order: 8
+ size:
+ - 0
+ src_pkg:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: src_pkg
+ order: 4
+ size:
+ - 0
+ src_ver:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: src_ver
+ order: 5
+ size:
+ - 0
+ ver_string:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 1
+ name: ver_string
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - bug
+ name: bug_ver_idx_bug
+ options: []
+ type: NORMAL
+ - fields:
+ - src_pkg
+ name: bug_ver_idx_src_pkg
+ options: []
+ type: NORMAL
+ - fields:
+ - src_ver
+ name: bug_ver_idx_src_ver
+ options: []
+ type: NORMAL
+ name: bug_ver
+ options: []
+ order: 29
+ column_comments:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - table_name
+ - column_name
+ match_type: ''
+ name: column_comments_table_name_column_name_idx
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ fields:
+ column_name:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: column_name
+ order: 2
+ size:
+ - 0
+ comment_text:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: comment_text
+ order: 3
+ size:
+ - 0
+ table_name:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: table_name
+ order: 1
+ size:
+ - 0
+ indices: []
+ name: column_comments
+ options: []
+ order: 5
+ correspondent:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - addr
+ match_type: ''
+ name: correspondent_addr_idx
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ fields:
+ addr:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: addr
+ order: 2
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ indices: []
+ name: correspondent
+ options: []
+ order: 6
+ correspondent_full_name:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - correspondent
+ - full_name
+ match_type: ''
+ name: correspondent_full_name_correspondent_full_name_idx
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - correspondent
+ match_type: ''
+ name: correspondent_full_name_fk_correspondent
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: correspondent
+ type: FOREIGN KEY
+ fields:
+ correspondent:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: correspondent
+ order: 2
+ size:
+ - 0
+ full_name:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: full_name
+ order: 3
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ last_seen:
+ data_type: timestamp
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: last_seen
+ order: 4
+ size:
+ - 0
+ indices:
+ - fields:
+ - correspondent
+ name: correspondent_full_name_idx_correspondent
+ options: []
+ type: NORMAL
+ name: correspondent_full_name
+ options: []
+ order: 14
+ dbix_class_deploymenthandler_versions:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - version
+ match_type: ''
+ name: dbix_class_deploymenthandler_versions_version
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ fields:
+ ddl:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: ddl
+ order: 3
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ upgrade_sql:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: upgrade_sql
+ order: 4
+ size:
+ - 0
+ version:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: version
+ order: 2
+ size:
+ - 50
+ indices: []
+ name: dbix_class_deploymenthandler_versions
+ options: []
+ order: 7
+ maintainer:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - name
+ match_type: ''
+ name: maintainer_name_idx
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - correspondent
+ match_type: ''
+ name: maintainer_fk_correspondent
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: correspondent
+ type: FOREIGN KEY
+ fields:
+ correspondent:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: correspondent
+ order: 3
+ size:
+ - 0
+ created:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: created
+ order: 4
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ modified:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: modified
+ order: 5
+ size:
+ - 0
+ name:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: name
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - correspondent
+ name: maintainer_idx_correspondent
+ options: []
+ type: NORMAL
+ name: maintainer
+ options: []
+ order: 15
+ message:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ from_addr:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: from_addr
+ order: 4
+ size:
+ - 0
+ from_complete:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: from_complete
+ order: 3
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ is_spam:
+ data_type: boolean
+ default_value: !!perl/ref
+ =: false
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: is_spam
+ order: 11
+ size:
+ - 0
+ msgid:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: msgid
+ order: 2
+ size:
+ - 0
+ refs:
+ data_type: text
+ default_value: ''
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: refs
+ order: 9
+ size:
+ - 0
+ sent_date:
+ data_type: timestamp with time zone
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: sent_date
+ order: 8
+ size:
+ - 0
+ spam_score:
+ data_type: double precision
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: spam_score
+ order: 10
+ size:
+ - 0
+ subject:
+ data_type: text
+ default_value: ''
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: subject
+ order: 7
+ size:
+ - 0
+ to_addr:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: to_addr
+ order: 6
+ size:
+ - 0
+ to_complete:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: to_complete
+ order: 5
+ size:
+ - 0
+ indices: []
+ name: message
+ options: []
+ order: 8
+ message_correspondent:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - message
+ - correspondent
+ - correspondent_type
+ match_type: ''
+ name: message_correspondent_message_correspondent_correspondent_t_idx
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - correspondent
+ match_type: ''
+ name: message_correspondent_fk_correspondent
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: correspondent
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - message
+ match_type: ''
+ name: message_correspondent_fk_message
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: message
+ type: FOREIGN KEY
+ fields:
+ correspondent:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: correspondent
+ order: 3
+ size:
+ - 0
+ correspondent_type:
+ data_type: enum
+ default_value: to
+ extra:
+ custom_type_name: message_correspondent_type
+ list:
+ - to
+ - from
+ - envfrom
+ - cc
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: correspondent_type
+ order: 4
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ message:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: message
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - correspondent
+ name: message_correspondent_idx_correspondent
+ options: []
+ type: NORMAL
+ - fields:
+ - message
+ name: message_correspondent_idx_message
+ options: []
+ type: NORMAL
+ name: message_correspondent
+ options: []
+ order: 18
+ message_refs:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - message
+ - refs
+ match_type: ''
+ name: message_refs_message_refs_idx
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - message
+ match_type: ''
+ name: message_refs_fk_message
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: message
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - refs
+ match_type: ''
+ name: message_refs_fk_refs
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: message
+ type: FOREIGN KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ inferred:
+ data_type: boolean
+ default_value: !!perl/ref
+ =: false
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: inferred
+ order: 4
+ size:
+ - 0
+ message:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: message
+ order: 2
+ size:
+ - 0
+ primary_ref:
+ data_type: boolean
+ default_value: !!perl/ref
+ =: false
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: primary_ref
+ order: 5
+ size:
+ - 0
+ refs:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: refs
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - message
+ name: message_refs_idx_message
+ options: []
+ type: NORMAL
+ - fields:
+ - refs
+ name: message_refs_idx_refs
+ options: []
+ type: NORMAL
+ name: message_refs
+ options: []
+ order: 16
+ severity:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - severity
+ match_type: ''
+ name: severity_severity_idx
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ obsolete:
+ data_type: boolean
+ default_value: !!perl/ref
+ =: false
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: obsolete
+ order: 5
+ size:
+ - 0
+ ordering:
+ data_type: integer
+ default_value: 5
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: ordering
+ order: 3
+ size:
+ - 0
+ severity:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: severity
+ order: 2
+ size:
+ - 0
+ strong:
+ data_type: boolean
+ default_value: !!perl/ref
+ =: false
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: strong
+ order: 4
+ size:
+ - 0
+ indices: []
+ name: severity
+ options: []
+ order: 9
+ src_associations:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - source
+ match_type: ''
+ name: src_associations_fk_source
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: src_ver
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - suite
+ match_type: ''
+ name: src_associations_fk_suite
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: suite
+ type: FOREIGN KEY
+ fields:
+ created:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: created
+ order: 4
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ modified:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: modified
+ order: 5
+ size:
+ - 0
+ source:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: source
+ order: 3
+ size:
+ - 0
+ suite:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: suite
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - source
+ name: src_associations_idx_source
+ options: []
+ type: NORMAL
+ - fields:
+ - suite
+ name: src_associations_idx_suite
+ options: []
+ type: NORMAL
+ name: src_associations
+ options: []
+ order: 27
+ src_pkg:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - pkg
+ - disabled
+ match_type: ''
+ name: src_pkg_pkg_disabled
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - alias_of
+ match_type: ''
+ name: src_pkg_fk_alias_of
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: src_pkg
+ type: FOREIGN KEY
+ fields:
+ alias_of:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: alias_of
+ order: 4
+ size:
+ - 0
+ creation:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: creation
+ order: 5
+ size:
+ - 0
+ disabled:
+ data_type: timestamp with time zone
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 1
+ name: disabled
+ order: 6
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ last_modified:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: last_modified
+ order: 7
+ size:
+ - 0
+ obsolete:
+ data_type: boolean
+ default_value: !!perl/ref
+ =: false
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: obsolete
+ order: 8
+ size:
+ - 0
+ pkg:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: pkg
+ order: 2
+ size:
+ - 0
+ pseduopkg:
+ data_type: boolean
+ default_value: !!perl/ref
+ =: false
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: pseduopkg
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - alias_of
+ name: src_pkg_idx_alias_of
+ options: []
+ type: NORMAL
+ name: src_pkg
+ options: []
+ order: 10
+ src_ver:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - src_pkg
+ - ver
+ match_type: ''
+ name: src_ver_src_pkg_id_ver
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 0
+ expression: ''
+ fields:
+ - based_on
+ match_type: ''
+ name: src_ver_fk_based_on
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: src_ver
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - maintainer
+ match_type: ''
+ name: src_ver_fk_maintainer
+ on_delete: SET NULL
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: maintainer
+ type: FOREIGN KEY
+ - deferrable: 0
+ expression: ''
+ fields:
+ - src_pkg
+ match_type: ''
+ name: src_ver_fk_src_pkg
+ on_delete: CASCADE
+ on_update: CASCADE
+ options: []
+ reference_fields:
+ - id
+ reference_table: src_pkg
+ type: FOREIGN KEY
+ fields:
+ based_on:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: based_on
+ order: 6
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ maintainer:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: maintainer
+ order: 4
+ size:
+ - 0
+ src_pkg:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: src_pkg
+ order: 2
+ size:
+ - 0
+ upload_date:
+ data_type: timestamp with time zone
+ default_value: !!perl/ref
+ =: current_timestamp
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: upload_date
+ order: 5
+ size:
+ - 0
+ ver:
+ data_type: debversion
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: ver
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - based_on
+ name: src_ver_idx_based_on
+ options: []
+ type: NORMAL
+ - fields:
+ - maintainer
+ name: src_ver_idx_maintainer
+ options: []
+ type: NORMAL
+ - fields:
+ - src_pkg
+ name: src_ver_idx_src_pkg
+ options: []
+ type: NORMAL
+ name: src_ver
+ options: []
+ order: 21
+ suite:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - suite_name
+ match_type: ''
+ name: suite_suite_name_key
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ fields:
+ active:
+ data_type: boolean
+ default_value: !!perl/ref
+ =: true
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: active
+ order: 5
+ size:
+ - 0
+ codename:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: codename
+ order: 4
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ suite_name:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: suite_name
+ order: 2
+ size:
+ - 0
+ version:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: version
+ order: 3
+ size:
+ - 0
+ indices: []
+ name: suite
+ options: []
+ order: 11
+ table_comments:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - table_name
+ match_type: ''
+ name: table_comments_table_name_key
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ fields:
+ comment_text:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: comment_text
+ order: 2
+ size:
+ - 0
+ table_name:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: table_name
+ order: 1
+ size:
+ - 0
+ indices: []
+ name: table_comments
+ options: []
+ order: 12
+ tag:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - tag
+ match_type: ''
+ name: tag_tag_key
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ obsolete:
+ data_type: boolean
+ default_value: !!perl/ref
+ =: false
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: obsolete
+ order: 3
+ size:
+ - 0
+ tag:
+ data_type: text
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: tag
+ order: 2
+ size:
+ - 0
+ indices: []
+ name: tag
+ options: []
+ order: 13
+ triggers: {}
+ views: {}
+translator:
+ add_drop_table: 0
+ filename: ~
+ no_comments: 0
+ parser_args:
+ sources:
+ - Arch
+ - BinAssociation
+ - BinPkg
+ - BinVer
+ - BinaryVersion
+ - Bug
+ - BugBinpackage
+ - BugBlock
+ - BugMerged
+ - BugMessage
+ - BugPackage
+ - BugSrcpackage
+ - BugStatusCache
+ - BugTag
+ - BugVer
+ - ColumnComment
+ - Correspondent
+ - CorrespondentFullName
+ - DbixClassDeploymenthandlerVersion
+ - Maintainer
+ - Message
+ - MessageCorrespondent
+ - MessageRef
+ - Severity
+ - SrcAssociation
+ - SrcPkg
+ - SrcVer
+ - Suite
+ - TableComment
+ - Tag
+ parser_type: SQL::Translator::Parser::DBIx::Class
+ producer_args: {}
+ producer_type: SQL::Translator::Producer::YAML
+ show_warnings: 0
+ trace: 0
+ version: 0.11018