changed archiving table definitions

This commit is contained in:
following
2013-03-08 23:22:22 +01:00
parent 7c785fcd6c
commit 837076515f
12 changed files with 34 additions and 27 deletions

View File

@@ -37,8 +37,13 @@ date commit ID change
2013-03-03 c5057c88 added profile_options.optionset
2013-03-04 df313402 new table helppages
2013-03-08 changes for vandalism archive-and-restore:
2013-03-08 7c785fcd changes for vandalism archive-and-restore:
- added cache_logs_archived.deletion_date and deleted_by
- added tables caches_modified, cache_desc_modified,
caches_attributes_modified, cache_logs_restored,
cache_pictures_modified and listing_restored
- modified lots of triggers
2013-03-09 added field 'restored_by' to cache_coordinates, cache_countries,
cache_logs_archived, all new tables and to triggers
removed table listing_restored
added index cache_logs_archived:user_id

View File

@@ -632,19 +632,19 @@
FOR EACH ROW
BEGIN
IF NEW.`longitude` != OLD.`longitude` OR NEW.`latitude` != OLD.`latitude` THEN
INSERT IGNORE INTO `cache_coordinates` (`cache_id`, `date_created`, `longitude`, `latitude`)
VALUES (NEW.`cache_id`, NOW(), NEW.`longitude`, NEW.`latitude`);
INSERT IGNORE INTO `cache_coordinates` (`cache_id`, `date_created`, `longitude`, `latitude`, `restored_by`)
VALUES (NEW.`cache_id`, NOW(), NEW.`longitude`, NEW.`latitude`, IFNULL(@restoredby,0));
END IF;
IF NEW.`country` != OLD.`country` THEN
INSERT IGNORE INTO `cache_countries` (`cache_id`, `date_created`, `country`)
VALUES (NEW.`cache_id`, NOW(), NEW.`country`);
INSERT IGNORE INTO `cache_countries` (`cache_id`, `date_created`, `country`, `restored_by`)
VALUES (NEW.`cache_id`, NOW(), NEW.`country`, IFNULL(@restoredby,0));
END IF;
IF NEW.`cache_id` = OLD.`cache_id` AND
OLD.`status` <> 5 AND
OLD.`date_created` < LEFT(NOW(),10) AND
(NEW.`name` != OLD.`name` OR NEW.`type` != OLD.`type` OR NEW.`date_hidden` != OLD.`date_hidden` OR NEW.`size` != OLD.`size` OR NEW.`difficulty` != OLD.`difficulty` OR NEW.`terrain` != OLD.`terrain` OR NEW.`search_time` != OLD.`search_time` OR NEW.`way_length` != OLD.`way_length` OR NEW.`wp_gc` != OLD.`wp_gc` OR NEW.`wp_nc` != OLD.`wp_nc`)
THEN
INSERT IGNORE INTO `caches_modified` (`cache_id`, `date_modified`, `name`, `type`, `date_hidden`, `size`, `difficulty`, `terrain`, `search_time`, `way_length`, `wp_gc`, `wp_nc`) VALUES (OLD.`cache_id`, NOW(), OLD.`name`, OLD.`type`, OLD.`date_hidden`, OLD.`size`, OLD.`difficulty`, OLD.`terrain`, OLD.`search_time`, OLD.`way_length`, OLD.`wp_gc`, OLD.`wp_nc`);
INSERT IGNORE INTO `caches_modified` (`cache_id`, `date_modified`, `name`, `type`, `date_hidden`, `size`, `difficulty`, `terrain`, `search_time`, `way_length`, `wp_gc`, `wp_nc`, `restored_by`) VALUES (OLD.`cache_id`, NOW(), OLD.`name`, OLD.`type`, OLD.`date_hidden`, OLD.`size`, OLD.`difficulty`, OLD.`terrain`, OLD.`search_time`, OLD.`way_length`, OLD.`wp_gc`, OLD.`wp_nc`, IFNULL(@restoredby,0));
/* logpw needs not to be saved */
/* for further explanation see restorecaches.php */
END IF;
@@ -691,7 +691,7 @@
BEGIN
IF (SELECT `date_created` FROM `caches` WHERE `cache_id`=NEW.`cache_id`) < LEFT(NOW(),10) AND
(SELECT `status` FROM `caches` WHERE `caches`.`cache_id`=NEW.`cache_id`) != 5 THEN
INSERT IGNORE INTO `cache_desc_modified` (`cache_id`, `language`, `date_modified`, `desc`) VALUES (NEW.`cache_id`, NEW.`language`, NOW(), NULL);
INSERT IGNORE INTO `cache_desc_modified` (`cache_id`, `language`, `date_modified`, `desc`, `restored_by`) VALUES (NEW.`cache_id`, NEW.`language`, NOW(), NULL, IFNULL(@restoredby,0));
END IF;
CALL sp_update_caches_descLanguages(NEW.`cache_id`);
END;");
@@ -718,9 +718,10 @@
END IF;
/* changes at date of creation are ignored to save archive space */
IF NEW.`cache_id`=OLD.`cache_id` AND
(OLD.`date_created` < LEFT(NOW(),10)) AND
(SELECT `status` FROM `caches` WHERE `caches`.`cache_id`=OLD.`cache_id`) != 5 THEN
INSERT IGNORE INTO `cache_desc_modified` (`cache_id`, `language`, `date_modified`, `date_created`, `desc`, `desc_html`, `desc_htmledit`, `hint`, `short_desc`) VALUES (OLD.`cache_id`, OLD.`language`, NOW(), OLD.`date_created`, OLD.`desc`, OLD.`desc_html`, OLD.`desc_htmledit`, OLD.`hint`, OLD.`short_desc`);
(SELECT `status` FROM `caches` WHERE `caches`.`cache_id`=OLD.`cache_id`) != 5 THEN
IF (OLD.`date_created` < LEFT(NOW(),10)) THEN
INSERT IGNORE INTO `cache_desc_modified` (`cache_id`, `language`, `date_modified`, `date_created`, `desc`, `desc_html`, `desc_htmledit`, `hint`, `short_desc`, `restored_by`) VALUES (OLD.`cache_id`, OLD.`language`, NOW(), OLD.`date_created`, OLD.`desc`, OLD.`desc_html`, OLD.`desc_htmledit`, OLD.`hint`, OLD.`short_desc`, IFNULL(@restoredby,0));
END IF;
IF NEW.`language`!=OLD.`language` THEN
INSERT IGNORE INTO `cache_desc_modified` (`cache_id`, `language`, `date_modified`, `desc`) VALUES (NEW.`cache_id`, NEW.`language`, NOW(), NULL);
END IF;
@@ -735,7 +736,7 @@
/* changes at date of creation are ignored to save archive space */
IF (OLD.`date_created` < LEFT(NOW(),10)) AND
(SELECT `status` FROM `caches` WHERE `caches`.`cache_id`=OLD.`cache_id`) != 5 THEN
INSERT IGNORE INTO `cache_desc_modified` (`cache_id`, `language`, `date_modified`, `date_created`, `desc`, `desc_html`, `desc_htmledit`, `hint`, `short_desc`) VALUES (OLD.`cache_id`, OLD.`language`, NOW(), OLD.`date_created`, OLD.`desc`, OLD.`desc_html`, OLD.`desc_htmledit`, OLD.`hint`, OLD.`short_desc`);
INSERT IGNORE INTO `cache_desc_modified` (`cache_id`, `language`, `date_modified`, `date_created`, `desc`, `desc_html`, `desc_htmledit`, `hint`, `short_desc`, `restored_by`) VALUES (OLD.`cache_id`, OLD.`language`, NOW(), OLD.`date_created`, OLD.`desc`, OLD.`desc_html`, OLD.`desc_htmledit`, OLD.`hint`, OLD.`short_desc`, IFNULL(@restoredby,0));
END IF;
CALL sp_update_caches_descLanguages(OLD.`cache_id`);
END;");
@@ -971,7 +972,7 @@
(NEW.`object_type`=2 AND
((SELECT `date_created` FROM `caches` WHERE `cache_id`=NEW.`object_id`) < LEFT(NOW(),10)) AND
(SELECT `status` FROM `caches` WHERE `caches`.`cache_id`=NEW.`object_id`) != 5)) THEN
INSERT IGNORE INTO `pictures_modified` (`id`, `date_modified`, `operation`, `object_type`, `object_id`, `title`, `original_id`) VALUES (NEW.`id`, NOW(), 'I', NEW.`object_type`, NEW.`object_id`, NEW.`title`, @original_picid);
INSERT IGNORE INTO `pictures_modified` (`id`, `date_modified`, `operation`, `object_type`, `object_id`, `title`, `original_id`, `restored_by`) VALUES (NEW.`id`, NOW(), 'I', NEW.`object_type`, NEW.`object_id`, NEW.`title`, IFNULL(@original_picid,0), IFNULL(@restoredby,0));
END IF;
IF NEW.`object_type`=1 THEN
CALL sp_update_cachelog_picturestat(NEW.`object_id`, FALSE);
@@ -1010,7 +1011,7 @@
(OLD.`date_created` < LEFT(NOW(),10)) AND
(SELECT `status` FROM `caches` WHERE `caches`.`cache_id`=OLD.`object_id`) != 5 AND
(NEW.`title` != OLD.`title` OR NEW.`spoiler` != OLD.`spoiler` OR NEW.`display` != OLD.`display`) THEN
INSERT IGNORE INTO `pictures_modified` (`id`, `date_modified`, `operation`, `date_created`, `url`, `title`, `object_id`, `object_type`, `spoiler`, `unknown_format`, `display`) VALUES (OLD.`id`, NOW(), 'U', OLD.`date_created`, OLD.`url`, OLD.`title`, OLD.`object_id`, OLD.`object_type`, OLD.`spoiler`, OLD.`unknown_format`, OLD.`display`);
INSERT IGNORE INTO `pictures_modified` (`id`, `date_modified`, `operation`, `date_created`, `url`, `title`, `object_id`, `object_type`, `spoiler`, `unknown_format`, `display`, `restored_by`) VALUES (OLD.`id`, NOW(), 'U', OLD.`date_created`, OLD.`url`, OLD.`title`, OLD.`object_id`, OLD.`object_type`, OLD.`spoiler`, OLD.`unknown_format`, OLD.`display`, IFNULL(@restoredby,0));
END IF;
END;");
@@ -1026,7 +1027,7 @@
(SELECT `date_created` FROM `caches` WHERE `cache_id`=OLD.`object_id`) < LEFT(NOW(),10) AND
(SELECT `status` FROM `caches` WHERE `caches`.`cache_id`=OLD.`object_id`) != 5
)) THEN
INSERT IGNORE INTO `pictures_modified` (`id`, `date_modified`, `operation`, `date_created`, `url`, `title`, `object_id`, `object_type`, `spoiler`, `unknown_format`, `display`) VALUES (OLD.`id`, NOW(), 'D', OLD.`date_created`, OLD.`url`, OLD.`title`, OLD.`object_id`, OLD.`object_type`, OLD.`spoiler`, OLD.`unknown_format`, OLD.`display`);
INSERT IGNORE INTO `pictures_modified` (`id`, `date_modified`, `operation`, `date_created`, `url`, `title`, `object_id`, `object_type`, `spoiler`, `unknown_format`, `display`, `restored_by`) VALUES (OLD.`id`, NOW(), 'D', OLD.`date_created`, OLD.`url`, OLD.`title`, OLD.`object_id`, OLD.`object_type`, OLD.`spoiler`, OLD.`unknown_format`, OLD.`display`, IFNULL(@restoredby,0));
END IF;
IF OLD.`object_type`=1 THEN
CALL sp_update_cachelog_picturestat(OLD.`object_id`, TRUE);
@@ -1229,7 +1230,7 @@
UPDATE `caches` SET `last_modified`=NOW() WHERE `cache_id`=NEW.`cache_id`;
IF (SELECT `status` FROM `caches` WHERE `cache_id`=NEW.`cache_id`) != 5 AND
(SELECT `date_created` FROM `caches` WHERE `cache_id`=NEW.`cache_id`) < LEFT(NOW(),10) THEN
INSERT IGNORE INTO `caches_attributes_modified` (`cache_id`, `attrib_id`, `date_modified`, `was_set`) VALUES (NEW.`cache_id`, NEW.`attrib_id`, NOW(), 0);
INSERT IGNORE INTO `caches_attributes_modified` (`cache_id`, `attrib_id`, `date_modified`, `was_set`, `restored_by`) VALUES (NEW.`cache_id`, NEW.`attrib_id`, NOW(), 0, IFNULL(@restoredby,0));
END IF;
END;");
@@ -1251,7 +1252,7 @@
UPDATE `caches` SET `last_modified`=NOW() WHERE `cache_id`=OLD.`cache_id`;
IF (SELECT `status` FROM `caches` WHERE `cache_id`=OLD.`cache_id`) != 5 AND
(SELECT `date_created` FROM `caches` WHERE `cache_id`=OLD.`cache_id`) < LEFT(NOW(),10) THEN
INSERT IGNORE INTO `caches_attributes_modified` (`cache_id`, `attrib_id`, `date_modified`, `was_set`) VALUES (OLD.`cache_id`, OLD.`attrib_id`, NOW(), 1);
INSERT IGNORE INTO `caches_attributes_modified` (`cache_id`, `attrib_id`, `date_modified`, `was_set`, `restored_by`) VALUES (OLD.`cache_id`, OLD.`attrib_id`, NOW(), 1, IFNULL(@restoredby,0));
END IF;
END;");

View File

@@ -6,6 +6,7 @@ CREATE TABLE `cache_coordinates` (
`cache_id` int(10) unsigned NOT NULL,
`longitude` double NOT NULL,
`latitude` double NOT NULL,
`restored_by` int(10) NOT NULL,
PRIMARY KEY (`id`),
KEY `cache_id` (`cache_id`,`date_created`),
KEY `longitude` (`longitude`),

View File

@@ -5,6 +5,7 @@ CREATE TABLE `cache_countries` (
`date_created` datetime NOT NULL,
`cache_id` int(10) unsigned NOT NULL,
`country` char(2) NOT NULL default '',
`restored_by` int(10) NOT NULL,
PRIMARY KEY (`id`),
KEY `cache_id` (`cache_id`,`date_created`),
KEY `country` (`country`)

View File

@@ -10,5 +10,6 @@ CREATE TABLE `cache_desc_modified` (
`desc_htmledit` tinyint(1) NOT NULL default '0',
`hint` mediumtext,
`short_desc` varchar(120) NOT NULL,
`restored_by` int(10) NOT NULL,
UNIQUE KEY `cache_id` (`cache_id`,`date_modified`,`language`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

View File

@@ -17,6 +17,8 @@ CREATE TABLE `cache_logs_archived` (
`picture` smallint(5) unsigned NOT NULL,
`deletion_date` datetime default NULL,
`deleted_by` int(10) NOT NULL default '0',
`restored_by` int(10) NOT NULL,
PRIMARY KEY (`id`),
KEY `cache_id` (`cache_id`)
KEY `cache_id` (`cache_id`),
KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

View File

@@ -5,6 +5,7 @@ CREATE TABLE `cache_logs_restored` (
`date_modified` datetime NOT NULL,
`cache_id` int(10) unsigned NOT NULL,
`original_id` int(10) unsigned NOT NULL,
`restored_by` int(10) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `original_id` (`original_id`),
KEY `cache_id` (`cache_id`,`date_modified`)

View File

@@ -5,5 +5,6 @@ CREATE TABLE `caches_attributes_modified` (
`attrib_id` tinyint(3) unsigned NOT NULL,
`date_modified` date NOT NULL COMMENT 'no time! see restorecaches.php',
`was_set` tinyint(1) unsigned NOT NULL,
`restored_by` int(10) NOT NULL,
UNIQUE KEY `cache_id` (`cache_id`,`date_modified`,`attrib_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

View File

@@ -13,5 +13,6 @@ CREATE TABLE `caches_modified` (
`way_length` float unsigned NOT NULL default '0',
`wp_gc` varchar(7) NOT NULL,
`wp_nc` varchar(6) NOT NULL,
`restored_by` int(10) NOT NULL,
UNIQUE KEY `cache_id` (`cache_id`,`date_modified`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

View File

@@ -1,8 +0,0 @@
SET NAMES 'utf8';
DROP TABLE IF EXISTS `listing_restored`;
CREATE TABLE `listing_restored` (
`cache_id` int(10) NOT NULL,
`date_modified` date NOT NULL,
`admin_id` int(10) NOT NULL,
UNIQUE KEY `cache_id` (`cache_id`,`date_modified`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

View File

@@ -2,7 +2,7 @@ SET NAMES 'utf8';
DROP TABLE IF EXISTS `pictures_modified`;
CREATE TABLE `pictures_modified` (
`id` int(10) NOT NULL,
`date_modified` datetime NOT NULL COMMENT 'no time! see restorecaches.php',
`date_modified` datetime NOT NULL,
`operation` char(1) NOT NULL,
`date_created` datetime NOT NULL,
`url` varchar(255) NOT NULL,
@@ -13,6 +13,7 @@ CREATE TABLE `pictures_modified` (
`unknown_format` tinyint(1) NOT NULL default '0',
`display` tinyint(1) NOT NULL default '1',
`original_id` int(10) NOT NULL,
`restored_by` int(10) NOT NULL,
UNIQUE KEY `id` (`id`,`operation`),
KEY `object_type` (`object_type`,`object_id`,`date_modified`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

View File

@@ -119,7 +119,7 @@
if ($commit == 1)
{
// move to archive
sql("INSERT IGNORE INTO `cache_logs_archived` SELECT *, NOW() AS `deletion_date`, '&2' AS `deleted_by` FROM `cache_logs` WHERE `cache_logs`.`id`='&1' LIMIT 1", $log_id, $usr['userid']);
sql("INSERT IGNORE INTO `cache_logs_archived` SELECT *, NOW() AS `deletion_date`, '&2' AS `deleted_by`, 0 AS `restored_by` FROM `cache_logs` WHERE `cache_logs`.`id`='&1' LIMIT 1", $log_id, $usr['userid']);
//log entfernen
sql("DELETE FROM `cache_logs` WHERE `cache_logs`.`id`='&1' LIMIT 1", $log_id);