From 0337a7b866276979cbeeeee1763d6553fc06f3ba Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Wed, 15 Apr 2015 23:56:23 +0200 Subject: [PATCH] file_redirection duplicates are removed too in maintenance script --- scripts/remove_duplicate_file_urls.php | 31 ++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/scripts/remove_duplicate_file_urls.php b/scripts/remove_duplicate_file_urls.php index dd965991f0..a4a7cd795b 100755 --- a/scripts/remove_duplicate_file_urls.php +++ b/scripts/remove_duplicate_file_urls.php @@ -25,7 +25,7 @@ $longoptions = array('yes'); $helptext = <<query('SELECT id, url, COUNT(*) AS c FROM file GROUP BY url HAVING c > 1'); +print "\nFound {$file->N} URLs with duplicate entries in file table"; while ($file->fetch()) { // We've got a URL that is duplicated in the file table $dupfile = new File(); $dupfile->url = $file->url; if ($dupfile->find(true)) { + print "\nDeleting duplicate entries in file table for URL: {$file->url} ["; // Leave one of the URLs in the database by using ->find(true) // and only deleting starting with this fetch. while($dupfile->fetch()) { + print "."; $dupfile->delete(); } + print "]\n"; + } else { + print "\nWarning! URL suddenly disappeared from database: {$file->url}\n"; + } +} + +$file = new File_redirection(); +$file->query('SELECT file_id, url, COUNT(*) AS c FROM file_redirection GROUP BY url HAVING c > 1'); +print "\nFound {$file->N} URLs with duplicate entries in file_redirection table"; +while ($file->fetch()) { + // We've got a URL that is duplicated in the file_redirection table + $dupfile = new File_redirection(); + $dupfile->url = $file->url; + if ($dupfile->find(true)) { + print "\nDeleting duplicate entries in file table for URL: {$file->url} ["; + // Leave one of the URLs in the database by using ->find(true) + // and only deleting starting with this fetch. + while($dupfile->fetch()) { + print "."; + $dupfile->delete(); + } + print "]\n"; + } else { + print "\nWarning! URL suddenly disappeared from database: {$file->url}\n"; } } print "\nDONE.\n";