diff options
author | Hugues Hiegel <root@paranoid> | 2015-04-21 12:49:44 +0200 |
---|---|---|
committer | Hugues Hiegel <root@paranoid> | 2015-04-21 12:49:44 +0200 |
commit | 733f8e8d0ce6217d906d06dc4fb08e36d48ed794 (patch) | |
tree | cff28366ff63ea6596f8026e1698090bd0b9405c /bin/cleandb.sh | |
parent | ef2e7b3f9d264ec146d4dae257b1e295ab3b462a (diff) | |
parent | a4ba3df54834ee90fb2c9930669f1229dc80261a (diff) |
Conflicts:
composer.json-dist
config/defaults.inc.php
plugins
plugins/acl/acl.js
plugins/acl/acl.php
plugins/acl/skins/classic/templates/table.html
plugins/acl/skins/larry/templates/table.html
plugins/enigma/README
plugins/enigma/config.inc.php.dist
plugins/enigma/enigma.js
plugins/enigma/enigma.php
plugins/enigma/lib/enigma_driver.php
plugins/enigma/lib/enigma_driver_gnupg.php
plugins/enigma/lib/enigma_driver_phpssl.php
plugins/enigma/lib/enigma_engine.php
plugins/enigma/lib/enigma_error.php
plugins/enigma/lib/enigma_key.php
plugins/enigma/lib/enigma_signature.php
plugins/enigma/lib/enigma_subkey.php
plugins/enigma/lib/enigma_ui.php
plugins/enigma/lib/enigma_userid.php
plugins/enigma/localization/en_US.inc
plugins/enigma/localization/ja_JP.inc
plugins/enigma/localization/ru_RU.inc
plugins/enigma/skins/classic/enigma.css
plugins/enigma/skins/classic/templates/keys.html
plugins/help/config.inc.php.dist
plugins/help/help.php
plugins/help/localization/en_US.inc
plugins/jqueryui/jqueryui.php
plugins/managesieve/Changelog
plugins/managesieve/composer.json
plugins/managesieve/config.inc.php.dist
plugins/managesieve/lib/Roundcube/rcube_sieve.php
plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php
plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php
plugins/managesieve/localization/en_US.inc
plugins/managesieve/managesieve.js
plugins/managesieve/skins/classic/managesieve.css
plugins/managesieve/skins/larry/managesieve.css
plugins/password/README
plugins/password/config.inc.php.dist
plugins/password/drivers/ldap.php
plugins/password/drivers/poppassd.php
plugins/password/drivers/vpopmaild.php
plugins/vcard_attachments/vcardattach.js
plugins/zipdownload/zipdownload.php
Diffstat (limited to 'bin/cleandb.sh')
-rwxr-xr-x | bin/cleandb.sh | 49 |
1 files changed, 2 insertions, 47 deletions
diff --git a/bin/cleandb.sh b/bin/cleandb.sh index d811c8d01..0bf71ea62 100755 --- a/bin/cleandb.sh +++ b/bin/cleandb.sh @@ -5,7 +5,7 @@ | bin/cleandb.sh | | | | This file is part of the Roundcube Webmail client | - | Copyright (C) 2010, The Roundcube Dev Team | + | Copyright (C) 2010-2015, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | @@ -23,56 +23,11 @@ define('INSTALL_PATH', realpath(__DIR__ . '/..') . '/' ); require INSTALL_PATH.'program/include/clisetup.php'; -// mapping for table name => primary key -$primary_keys = array( - 'contacts' => "contact_id", - 'contactgroups' => "contactgroup_id", -); - -// connect to DB -$RCMAIL = rcube::get_instance(); -$db = $RCMAIL->get_dbh(); -$db->db_connect('w'); - -if (!$db->is_connected() || $db->is_error()) { - rcube::raise_error("No DB connection", false, true); -} - if (!empty($_SERVER['argv'][1])) $days = intval($_SERVER['argv'][1]); else $days = 7; -// remove all deleted records older than two days -$threshold = date('Y-m-d 00:00:00', time() - $days * 86400); - -foreach (array('contacts','contactgroups','identities') as $table) { - - $sqltable = $db->table_name($table, true); - - // also delete linked records - // could be skipped for databases which respect foreign key constraints - if ($db->db_provider == 'sqlite' - && ($table == 'contacts' || $table == 'contactgroups') - ) { - $pk = $primary_keys[$table]; - $memberstable = $db->table_name('contactgroupmembers'); - - $db->query( - "DELETE FROM " . $db->quote_identifier($memberstable). - " WHERE `$pk` IN (". - "SELECT `$pk` FROM $sqltable". - " WHERE `del` = 1 AND `changed` < ?". - ")", - $threshold); - - echo $db->affected_rows() . " records deleted from '$memberstable'\n"; - } - - // delete outdated records - $db->query("DELETE FROM $sqltable WHERE `del` = 1 AND `changed` < ?", $threshold); - - echo $db->affected_rows() . " records deleted from '$table'\n"; -} +rcmail_utils::db_clean($days); ?> |