Skip to content
Snippets Groups Projects
Commit 101fd8c7 authored by PavelBegunkov's avatar PavelBegunkov
Browse files

Logs dumping + datatypes optimization #43

parent d99bfa73
No related merge requests found
......@@ -341,8 +341,8 @@ INSERT INTO `subjects_faculties` (`SubjectID`, `FacultyID`) VALUES
INSERT INTO `accounts` (`ID`, `Login`, `Password`, `EMail`, `UserRoleID`, `ActivationCode`, `IsEnabled`, `UserAgent`) VALUES
(1, NULL, NULL, NULL, 3, 'code', 1, NULL);
INSERT INTO `accounts` (`ID`, `Login`, `Password`, `EMail`, `UserRoleID`, `ActivationCode`, `IsEnabled`) VALUES
(1, NULL, NULL, NULL, 3, 'code', 1);
INSERT INTO `teachers` (`ID`, `LastName`, `FirstName`, `SecondName`, `JobPositionID`, `DepartmentID`, `AccountID`) VALUES
(1, 'Штейнберг', 'Роман', 'Борисович', 1, 1, 1);
......
ALTER TABLE rating_table MODIFY Rate TINYINT;
ALTER TABLE logs_rating MODIFY Rate TINYINT;
ALTER TABLE accounts DROP COLUMN Notification, DROp COLUMN UserAgent;
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
DELIMITER //
DROP PROCEDURE IF EXISTS dumpLogRating//
CREATE PROCEDURE `dumpLogRating`()
BEGIN
DECLARE outName, dateName VARCHAR(50);
SET dateName = DATE_FORMAT(CURRENT_TIMESTAMP, '%Y%m%d_%H%i');
SET outName = CONCAT('/tmp/logs_rating_', dateName);
SET @archive_query := CONCAT(
'SELECT logs_rating.* INTO OUTFILE \'', outName, '\' ',
'FIELDS TERMINATED BY \',\' OPTIONALLY ENCLOSED BY \'"\' ',
'LINES TERMINATED BY \'\n\' ',
'FROM logs_rating ',
'WHERE logs_rating.Date < DATE_SUB(NOW(), INTERVAL 1 MONTH);'
);
PREPARE archive_query FROM @archive_query;
EXECUTE archive_query;
DEALLOCATE PREPARE archive_query;
DELETE FROM logs_rating
WHERE logs_rating.Date < DATE_SUB(NOW(), INTERVAL 1 MONTH);
END//
DROP PROCEDURE IF EXISTS dumpLogSignin//
CREATE PROCEDURE `dumpLogSignin`()
BEGIN
DECLARE outName, dateName VARCHAR(50);
SET dateName = DATE_FORMAT(CURRENT_TIMESTAMP, '%Y%m%d_%H%i');
SET outName = CONCAT('/tmp/logs_signin_', dateName);
SET @archive_query := CONCAT(
'SELECT logs_signin.* INTO OUTFILE \'', outName, '\' ',
'FIELDS TERMINATED BY \',\' OPTIONALLY ENCLOSED BY \'"\' ',
'LINES TERMINATED BY \'\n\' ',
'FROM logs_signin ',
'WHERE logs_signin.Date < DATE_SUB(NOW(), INTERVAL 1 MONTH);'
);
PREPARE archive_query FROM @archive_query;
EXECUTE archive_query;
DEALLOCATE PREPARE archive_query;
DELETE FROM logs_signin
WHERE logs_signin.Date < DATE_SUB(NOW(), INTERVAL 1 MONTH);
END//
DROP EVENT IF EXISTS dump_logs_event//
CREATE EVENT dump_logs_event
ON SCHEDULE EVERY 1 MONTH
DO BEGIN
START TRANSACTION;
CALL dumpLogRating();
CALL dumpLogSignin();
COMMIT;
END//
DELIMITER ;
......@@ -320,8 +320,7 @@ BEGIN
user_roles.RoleName AS 'Role',
user_roles.Mark AS 'RoleMark',
accounts.IsEnabled,
accounts.ActivationCode AS 'Code',
accounts.UserAgent
accounts.ActivationCode AS 'Code'
FROM students
INNER JOIN `accounts` ON accounts.ID = students.AccountID
INNER JOIN `user_roles` ON user_roles.ID = accounts.UserRoleID
......@@ -350,8 +349,7 @@ BEGIN
user_roles.RoleName AS 'Role',
user_roles.Mark AS 'RoleMark',
accounts.IsEnabled,
accounts.ActivationCode AS 'Code',
accounts.UserAgent
accounts.ActivationCode AS 'Code'
FROM `view_teachers`
INNER JOIN `accounts` ON accounts.ID = view_teachers.AccountID
INNER JOIN `user_roles` ON user_roles.ID = accounts.UserRoleID
......
......@@ -25,8 +25,6 @@ CREATE TABLE IF NOT EXISTS `accounts` (
`UserRoleID` int(11) NOT NULL,
`ActivationCode` varchar(40) CHARACTER SET utf8 DEFAULT NULL,
`IsEnabled` tinyint(1) NOT NULL DEFAULT '1',
`UserAgent` text,
`Notification` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`),
UNIQUE KEY `Login` (`Login`),
UNIQUE KEY `EMail` (`EMail`),
......@@ -212,7 +210,7 @@ CREATE TABLE IF NOT EXISTS `rating_table` (
`StudentID` int(11) NOT NULL,
`TeacherID` int(11) NOT NULL,
`SubmoduleID` int(11) NOT NULL,
`Rate` int(11) NOT NULL,
`Rate` tinyint NOT NULL,
`Date` date NOT NULL,
PRIMARY KEY (`StudentID`,`SubmoduleID`),
KEY `StudentID` (`StudentID`),
......
......@@ -79,7 +79,7 @@ CREATE TABLE IF NOT EXISTS `logs_rating` (
`StudentID` int(11) NOT NULL,
`SubmoduleID` int(11) NOT NULL,
`TeacherID` int(11) NOT NULL,
`Rate` int(11) NOT NULL,
`Rate` tinyint NOT NULL,
`Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Action` enum('add','change','delete') NOT NULL,
PRIMARY KEY (`ID`),
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment