]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1588221 - Update current s3 storage controller to only upload attachments over...
authordklawren <dklawren@users.noreply.github.com>
Tue, 14 Jan 2020 19:19:33 +0000 (14:19 -0500)
committerGitHub <noreply@github.com>
Tue, 14 Jan 2020 19:19:33 +0000 (14:19 -0500)
Bugzilla/DB/Schema.pm
Bugzilla/DB/Schema/Mysql.pm
Bugzilla/DB/Schema/Oracle.pm
Bugzilla/DB/Schema/Pg.pm
Bugzilla/DB/Schema/Sqlite.pm
Bugzilla/Install/DB.pm
extensions/Review/Extension.pm

index 15ce3c33708371f23c7e8df95394465b25366bc1..310970b2e4488cfcdb84a515cc52be674103cedd 100644 (file)
@@ -337,7 +337,7 @@ use constant ABSTRACT_SCHEMA => {
         REFERENCES => {TABLE => 'bugs', COLUMN => 'bug_id', DELETE => 'CASCADE'}
       },
       attach_id => {
-        TYPE => 'INT3',
+        TYPE => 'INT5',
         REFERENCES =>
           {TABLE => 'attachments', COLUMN => 'attach_id', DELETE => 'CASCADE'}
       },
@@ -509,7 +509,7 @@ use constant ABSTRACT_SCHEMA => {
 
   attachments => {
     FIELDS => [
-      attach_id => {TYPE => 'MEDIUMSERIAL', NOTNULL => 1, PRIMARYKEY => 1},
+      attach_id => {TYPE => 'BIGSERIAL', NOTNULL => 1, PRIMARYKEY => 1},
       bug_id    => {
         TYPE       => 'INT3',
         NOTNULL    => 1,
@@ -538,10 +538,11 @@ use constant ABSTRACT_SCHEMA => {
       attachments_ispatch_idx           => ['ispatch'],
     ],
   },
+
   attach_data => {
     FIELDS => [
       id => {
-        TYPE       => 'INT3',
+        TYPE       => 'INT5',
         NOTNULL    => 1,
         PRIMARYKEY => 1,
         REFERENCES =>
@@ -551,6 +552,20 @@ use constant ABSTRACT_SCHEMA => {
     ],
   },
 
+  attachment_storage_class => {
+    FIELDS => [
+      id => {
+        TYPE       => 'INT5',
+        NOTNULL    => 1,
+        PRIMARYKEY => 1,
+        REFERENCES =>
+          {TABLE => 'attachments', COLUMN => 'attach_id', DELETE => 'CASCADE'}
+      },
+      storage_class => {TYPE => 'varchar(64)', NOTNULL => 1},
+      extra_data    => {TYPE => 'MEDIUMTEXT'}
+    ],
+  },
+
   duplicates => {
     FIELDS => [
       dupe_of => {
@@ -654,7 +669,7 @@ use constant ABSTRACT_SCHEMA => {
         REFERENCES => {TABLE => 'bugs', COLUMN => 'bug_id', DELETE => 'CASCADE'}
       },
       attach_id => {
-        TYPE => 'INT3',
+        TYPE => 'INT5',
         REFERENCES =>
           {TABLE => 'attachments', COLUMN => 'attach_id', DELETE => 'CASCADE'}
       },
@@ -1809,7 +1824,7 @@ use constant ABSTRACT_SCHEMA => {
       user_agent  => {TYPE => 'TINYTEXT',    NOTNULL => 1},
       timestamp   => {TYPE => 'DATETIME',    NOTNULL => 1},
       bug_id      => {TYPE => 'INT3',        NOTNULL => 0},
-      attach_id   => {TYPE => 'INT4',        NOTNULL => 0},
+      attach_id   => {TYPE => 'INT5',        NOTNULL => 0},
       request_url => {TYPE => 'TINYTEXT',    NOTNULL => 1},
       method      => {TYPE => 'TINYTEXT',    NOTNULL => 1},
       action      => {TYPE => 'varchar(20)', NOTNULL => 1},
index 21543b4b3dec8d7418992e2e4e8c7df7cc202491..39c1fc45ee902eafdbbd95aad51c7517f3fba217 100644 (file)
@@ -103,10 +103,12 @@ sub _initialize {
     INT2 => 'smallint',
     INT3 => 'mediumint',
     INT4 => 'integer',
+    INT5 => 'bigint(20)',
 
     SMALLSERIAL  => 'smallint auto_increment',
     MEDIUMSERIAL => 'mediumint auto_increment',
     INTSERIAL    => 'integer auto_increment',
+    BIGSERIAL    => 'bigint(20) auto_increment',
 
     TINYTEXT   => 'tinytext',
     MEDIUMTEXT => 'mediumtext',
index 36f957820f700136bd6127c9eb4b6162fd1c5422..751cb718fc519263f30697484428f39b0480865d 100644 (file)
@@ -46,10 +46,12 @@ sub _initialize {
     INT2 => 'integer',
     INT3 => 'integer',
     INT4 => 'integer',
+    INT5 => 'integer',
 
     SMALLSERIAL  => 'integer',
     MEDIUMSERIAL => 'integer',
     INTSERIAL    => 'integer',
+    BIGSERIAL    => 'integer',
 
     TINYTEXT   => 'varchar(255)',
     MEDIUMTEXT => 'varchar(4000)',
index e4c7fae7a4750ac1720ec2faffb8334edbf702c5..b496f388603f519d6641eaf3620c4d0c0de34719 100644 (file)
@@ -55,10 +55,12 @@ sub _initialize {
     INT2 => 'integer',
     INT3 => 'integer',
     INT4 => 'integer',
+    INT5 => 'integer',
 
     SMALLSERIAL  => 'serial unique',
     MEDIUMSERIAL => 'serial unique',
     INTSERIAL    => 'serial unique',
+    BIGSERIAL    => 'serial unique',
 
     TINYTEXT   => 'varchar(255)',
     MEDIUMTEXT => 'text',
index 1bd53515ac9606d858171ab2735e84019b008527..81cd8c2ea8cb85bc2bbb19c3c1ec868d2f5c17fa 100644 (file)
@@ -35,10 +35,12 @@ sub _initialize {
     INT2 => 'integer',
     INT3 => 'integer',
     INT4 => 'integer',
+    INT5 => 'integer',
 
     SMALLSERIAL  => 'SERIAL',
     MEDIUMSERIAL => 'SERIAL',
     INTSERIAL    => 'SERIAL',
+    BIGSERIAL    => 'SERIAL',
 
     TINYTEXT   => 'text',
     MEDIUMTEXT => 'text',
index 9425d95ec081bb4a4a0741dd791f05bea437f919..cb5ff2093c1eae194c97ae4edd68d46aad25e50f 100644 (file)
@@ -805,6 +805,17 @@ sub update_table_definitions {
   # Bug 1576667 - dkl@mozilla.com
   _populate_api_keys_creation_ts();
 
+  # Bug 1588221 - dkl@mozilla.com
+  $dbh->bz_alter_column('bugs_activity', 'attach_id', {TYPE => 'INT5'});
+  $dbh->bz_alter_column('attachments', 'attach_id',
+    {TYPE => 'BIGSERIAL', NOTNULL => 1, PRIMARYKEY => 1});
+  $dbh->bz_alter_column('attach_data', 'id',
+    {TYPE => 'INT5', NOTNULL => 1, PRIMARYKEY => 1});
+  $dbh->bz_alter_column('flags',            'attach_id', {TYPE => 'INT5'});
+  $dbh->bz_alter_column('user_request_log', 'attach_id', {TYPE => 'INT5'});
+  _populate_attachment_storage_class();
+
+
   ################################################################
   # New --TABLE-- changes should go *** A B O V E *** this point #
   ################################################################
@@ -4326,6 +4337,25 @@ sub _populate_api_keys_creation_ts {
     {TYPE => 'DATETIME', NOTNULL => 1});
 }
 
+sub _populate_attachment_storage_class {
+  my $dbh = Bugzilla->dbh;
+
+  my $attach_count
+    = $dbh->selectrow_array('SELECT COUNT(attach_id) FROM attachments');
+  my $class_count
+    = $dbh->selectrow_array('SELECT COUNT(id) FROM attachment_storage_class');
+
+  # Return if we have already made these changes
+  if ($attach_count != $class_count) {
+    print "Populating attachments_storage_class table...\n";
+    $dbh->do("
+       INSERT INTO attachment_storage_class (id, storage_class)
+       SELECT attachments.attach_id, 'database' FROM attachments
+       WHERE NOT EXISTS (SELECT 1 FROM attachment_storage_class WHERE id = attachments.attach_id)
+    ");
+  }
+}
+
 1;
 
 __END__
index 8fc103bd69086d95e88e9fb7f29796c9cda89f51..c60c425a03ae2e9c9aaf925b303ac466b11b2ce7 100644 (file)
@@ -874,7 +874,7 @@ sub db_schema_abstract_schema {
       },
 
       attachment_id => {
-        TYPE => 'INT3',
+        TYPE => 'INT5',
         REFERENCES =>
           {TABLE => 'attachments', COLUMN => 'attach_id', DELETE => 'CASCADE'}
       },