]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
unique keys and indexes must be NOT NULL or MySQL fucks up
authorMikael Nordfeldth <mmn@hethane.se>
Thu, 19 Feb 2015 20:21:39 +0000 (21:21 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Thu, 19 Feb 2015 20:21:39 +0000 (21:21 +0100)
If this merge throws exception on scripts/upgrade.php and you recently
tried a nightly (i.e. during 2015-02-19) then just go back a commit or two
and try again.

Or delete the duplicate entries. Find the entries like this:

SELECT COUNT(*), urlhash FROM file_redirection
    GROUP BY urlhash
    HAVING COUNT(*) > 1;

then for each urlhash (or come up with a smart SQL query) do:
DELETE FROM file_redirection WHERE urlhash='hashfrompreviousquery' LIMIT 1;

You'll have to remove duplicates more than once if you have >2 identical
urlhash entries. LIMIT -1 might do that for you. I'm not sure.

classes/File.php
classes/File_redirection.php

index b4bf9f9a1fdc046885d7cf9c4dafdb7b4b226678..c7239777ea8dddbf68bceefec121b3aae024f509 100644 (file)
@@ -45,7 +45,7 @@ class File extends Managed_DataObject
         return array(
             'fields' => array(
                 'id' => array('type' => 'serial', 'not null' => true),
-                'urlhash' => array('type' => 'varchar', 'length' => 64, 'description' => 'sha256 of destination URL (url field)'),
+                'urlhash' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'sha256 of destination URL (url field)'),
                 'url' => array('type' => 'text', 'description' => 'destination URL after following redirections'),
                 'mimetype' => array('type' => 'varchar', 'length' => 50, 'description' => 'mime type of resource'),
                 'size' => array('type' => 'int', 'description' => 'size of resource when available'),
index 9309642553b0de545a4da26291376018500c5bbc..ade04fbcbcac278057cec38ea4b20e0280fef381 100644 (file)
@@ -43,7 +43,7 @@ class File_redirection extends Managed_DataObject
     {
         return array(
             'fields' => array(
-                'urlhash' => array('type' => 'varchar', 'length' => 64, 'description' => 'sha256 hash of the URL'),
+                'urlhash' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'sha256 hash of the URL'),
                 'url' => array('type' => 'text', 'description' => 'short URL (or any other kind of redirect) for file (id)'),
                 'file_id' => array('type' => 'int', 'description' => 'short URL for what URL/file'),
                 'redirections' => array('type' => 'int', 'description' => 'redirect count'),