feat: refs #6727 Added util logClean #2602
|
@ -0,0 +1,8 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `util`.`log_clean`
|
||||
ON SCHEDULE EVERY 1 DAY
|
||||
STARTS '2024-07-09 00:30:00.000'
|
||||
ON COMPLETION PRESERVE
|
||||
ENABLE
|
||||
DO CALL util.log_clean$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,54 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`log_clean`()
|
||||
BEGIN
|
||||
/**
|
||||
* Hace limpieza de los datos de las tablas log,
|
||||
* dejando únicamente los días de retención configurados.
|
||||
*/
|
||||
DECLARE vSchemaName VARCHAR(65);
|
||||
DECLARE vSchemaNameQuoted VARCHAR(65);
|
||||
DECLARE vTableName VARCHAR(65);
|
||||
DECLARE vTableNameQuoted VARCHAR(65);
|
||||
DECLARE vRetentionDays INT;
|
||||
DECLARE vStarted DATETIME;
|
||||
DECLARE vDated DATE;
|
||||
DECLARE vDone BOOL;
|
||||
|
||||
DECLARE vQueue CURSOR FOR
|
||||
SELECT schemaName, tableName, retentionDays
|
||||
FROM logCleanMultiConfig
|
||||
ORDER BY `order`;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
||||
|
||||
OPEN vQueue;
|
||||
l: LOOP
|
||||
SET vDone = FALSE;
|
||||
FETCH vQueue INTO vSchemaName, vTableName, vRetentionDays;
|
||||
|
||||
IF vDone THEN
|
||||
LEAVE l;
|
||||
END IF;
|
||||
|
||||
IF vRetentionDays THEN
|
||||
SET vStarted = VN_NOW();
|
||||
SET vSchemaNameQuoted = quoteIdentifier(vSchemaName);
|
||||
SET vTableNameQuoted = quoteIdentifier(vTableName);
|
||||
SET vDated = VN_CURDATE() - INTERVAL vRetentionDays DAY;
|
||||
|
||||
EXECUTE IMMEDIATE CONCAT(
|
||||
guillermo marked this conversation as resolved
Outdated
|
||||
'DELETE FROM ', vSchemaNameQuoted,
|
||||
'.', vTableNameQuoted,
|
||||
" WHERE creationDate < '", vDated, "'"
|
||||
);
|
||||
|
||||
UPDATE logCleanMultiConfig
|
||||
SET `started` = vStarted,
|
||||
`finished` = VN_NOW()
|
||||
WHERE schemaName = vSchemaName
|
||||
AND tableName = vTableName;
|
||||
END IF;
|
||||
END LOOP;
|
||||
CLOSE vQueue;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,13 @@
|
|||
CREATE OR REPLACE TABLE `util`.`logCleanMultiConfig` (
|
||||
guillermo marked this conversation as resolved
juan
commented
MultiConfig ya està consensuado? El nombre de la tabla se queda muy largo. MultiConfig ya està consensuado? El nombre de la tabla se queda muy largo.
guillermo
commented
Sí, está consensuado y puesto en la wiki, es más. ya está hecho el cambio en DEV Sí, está consensuado y puesto en la wiki, es más. ya está hecho el cambio en DEV
|
||||
`schemaName` varchar(64) NOT NULL,
|
||||
`tableName` varchar(64) NOT NULL,
|
||||
`retentionDays` int(11) DEFAULT NULL,
|
||||
`order` int(11) DEFAULT NULL,
|
||||
`started` datetime DEFAULT NULL,
|
||||
`finished` datetime DEFAULT NULL,
|
||||
PRIMARY KEY (`schemaName`,`tableName`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
||||
|
||||
INSERT INTO `util`.`logCleanMultiConfig` (`schemaName`, `tableName`)
|
||||
SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.`COLUMNS`
|
||||
WHERE COLUMN_NAME IN ('newInstance', 'newInstance');
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX userLog_creationDate_IDX USING BTREE ON account.userLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX roleLog_creationDate_IDX USING BTREE ON account.roleLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX ACLLog_creationDate_IDX USING BTREE ON salix.ACLLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX supplierLog_creationDate_IDX USING BTREE ON vn.supplierLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX deviceProductionLog_creationDate_IDX USING BTREE ON vn.deviceProductionLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX routeLog_creationDate_IDX USING BTREE ON vn.routeLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX itemLog_creationDate_IDX USING BTREE ON vn.itemLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX userLog_creationDate_IDX USING BTREE ON vn.userLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX invoiceInLog_creationDate_IDX USING BTREE ON vn.invoiceInLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX zoneLog_creationDate_IDX USING BTREE ON vn.zoneLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX clientLog_creationDate_IDX USING BTREE ON vn.clientLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX workerLog_creationDate_IDX USING BTREE ON vn.workerLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX rateLog_creationDate_IDX USING BTREE ON vn.rateLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX claimLog_creationDate_IDX USING BTREE ON vn.claimLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX packingSiteDeviceLog_creationDate_IDX USING BTREE ON vn.packingSiteDeviceLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX travelLog_creationDate_IDX USING BTREE ON vn.travelLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX shelvingLog_creationDate_IDX USING BTREE ON vn.shelvingLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX productionConfigLog_creationDate_IDX USING BTREE ON vn.productionConfigLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX entryLog_creationDate_IDX USING BTREE ON vn.entryLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX agencyLog_creationDate_IDX USING BTREE ON vn.agencyLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX parkingLog_creationDate_IDX USING BTREE ON vn.parkingLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX bufferLog_creationDate_IDX USING BTREE ON srt.bufferLog (creationDate DESC);
|
|
@ -0,0 +1 @@
|
|||
CREATE INDEX saleGroupLog_creationDate_IDX USING BTREE ON vn.saleGroupLog (creationDate DESC);
|
Loading…
Reference in New Issue
Gastar
EXECUTE INMEDIATE
en lugar deutil.exec
ya que es una instrucción nativa.