52 lines
1.9 KiB
SQL
52 lines
1.9 KiB
SQL
-- DB update 2021_01_25_00 -> 2021_03_21_00
|
|
DROP PROCEDURE IF EXISTS `updateDb`;
|
|
DELIMITER //
|
|
CREATE PROCEDURE updateDb ()
|
|
proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE';
|
|
SELECT COUNT(*) INTO @COLEXISTS
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_auth' AND COLUMN_NAME = '2021_01_25_00';
|
|
IF @COLEXISTS = 0 THEN LEAVE proc; END IF;
|
|
START TRANSACTION;
|
|
ALTER TABLE version_db_auth CHANGE COLUMN 2021_01_25_00 2021_03_21_00 bit;
|
|
SELECT sql_rev INTO OK FROM version_db_auth WHERE sql_rev = '1615629613255169700'; IF OK <> 'FALSE' THEN LEAVE proc; END IF;
|
|
--
|
|
-- START UPDATING QUERIES
|
|
--
|
|
|
|
INSERT INTO `version_db_auth` (`sql_rev`) VALUES ('1615629613255169700');
|
|
|
|
-- update `account` structure
|
|
-- sha_pass_hash/s/v kept around for now, for backwards compatibility
|
|
ALTER TABLE `account`
|
|
DROP COLUMN `sessionkey`,
|
|
ADD COLUMN `salt` BINARY(32) AFTER `username`,
|
|
ADD COLUMN `verifier` BINARY(32) AFTER `salt`,
|
|
ADD COLUMN `session_key` BINARY(40) AFTER `verifier`,
|
|
MODIFY COLUMN `s` VARCHAR(64) NOT NULL DEFAULT 'dummy value, use `salt` instead',
|
|
MODIFY COLUMN `v` VARCHAR(64) NOT NULL DEFAULT 'dummy value, use `verifier` instead';
|
|
|
|
UPDATE `account` SET `salt`=REVERSE(UNHEX(`s`)), `s`=DEFAULT WHERE LENGTH(`s`)=64;
|
|
UPDATE `account` SET `verifier`=REVERSE(UNHEX(`v`)), `v`=DEFAULT WHERE LENGTH(`v`)=64;
|
|
|
|
ALTER TABLE `account`
|
|
DROP COLUMN `session_key`,
|
|
ADD COLUMN `session_key` BINARY(40) DEFAULT NULL AFTER `verifier`;
|
|
|
|
UPDATE `account` SET `salt`=UNHEX(CONCAT(MD5(RAND()),MD5(RAND()))), `verifier`=UNHEX(CONCAT(MD5(RAND()),MD5(RAND()))) WHERE `salt` IS NULL OR `verifier` IS NULL;
|
|
|
|
ALTER TABLE `account`
|
|
DROP COLUMN `s`,
|
|
DROP COLUMN `v`,
|
|
DROP COLUMN `sha_pass_hash`,
|
|
MODIFY COLUMN `salt` BINARY(32) NOT NULL,
|
|
MODIFY COLUMN `verifier` BINARY(32) NOT NULL;
|
|
|
|
--
|
|
-- END UPDATING QUERIES
|
|
--
|
|
COMMIT;
|
|
END //
|
|
DELIMITER ;
|
|
CALL updateDb();
|
|
DROP PROCEDURE IF EXISTS `updateDb`;
|