mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-25 14:46:24 +00:00
implemented pending workflow for sql and PR
This commit is contained in:
54
bin/db_pendings/import.sh
Executable file
54
bin/db_pendings/import.sh
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
|
||||
CURRENT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
source "$CURRENT_PATH/../bash_shared/includes.sh"
|
||||
|
||||
|
||||
|
||||
UPDATES_PATH="$AC_PATH_ROOT/data/sql/updates/"
|
||||
|
||||
function import() {
|
||||
folder="db_"$1
|
||||
pendingPath="$AC_PATH_ROOT/data/sql/updates/pending_$folder"
|
||||
updPath="$UPDATES_PATH/$folder"
|
||||
|
||||
latestUpd=`ls $updPath/ -1 | tail -n 1`
|
||||
|
||||
if [ -z $latestUpd ]; then
|
||||
echo "FIRST UPDATE FILE MISSING!! DID YOU ARCHIVED IT?";
|
||||
exit;
|
||||
fi
|
||||
|
||||
dateToday=`date +%Y_%m_%d`
|
||||
counter=0
|
||||
|
||||
dateLast=$latestUpd
|
||||
tmp=${dateLast#*_*_*_}
|
||||
oldCnt=${tmp%.sql}
|
||||
oldDate=${dateLast%_$tmp}
|
||||
|
||||
if [ "$oldDate" = "$dateToday" ]; then
|
||||
((counter=$oldCnt+1))
|
||||
fi;
|
||||
|
||||
for entry in "$pendingPath"/*.sql
|
||||
do
|
||||
if [[ -e $entry ]]; then
|
||||
updHeader="ALTER TABLE db_version CHANGE COLUMN "$latestUpd" "$dateToday"_"$counter" bit;";
|
||||
cnt=$(printf -v counter "%02d" $counter ; echo $counter)
|
||||
newFile="$updPath/"$dateToday"_"$cnt".sql"
|
||||
echo "$updHeader" > "$newFile"
|
||||
echo "--" >> "$newFile"
|
||||
echo "--" >> "$newFile"
|
||||
cat $entry >> "$newFile"
|
||||
rm $entry
|
||||
((counter+=1))
|
||||
fi
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
import "world"
|
||||
import "characters"
|
||||
import "auth"
|
||||
@@ -1 +1,3 @@
|
||||
Please read [this](https://github.com/azerothcore/azerothcore-wotlk/wiki/Dealing-with-SQL-files) before adding new SQL-update files.
|
||||
|
||||
Use template sql files present in this folder to build your update file
|
||||
|
||||
6
data/sql/updates/db_auth/2016_08_25_00.sql
Normal file
6
data/sql/updates/db_auth/2016_08_25_00.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
ALTER TABLE auth_db_version CHANGE COLUMN 2016_07_10_00 2016_08_25_00 bit;
|
||||
|
||||
--
|
||||
-- Do not remove this file when we archive sql under this folder
|
||||
-- it is needed for pending sql importer
|
||||
--
|
||||
13
data/sql/updates/db_auth/2016_08_25_01.sql
Normal file
13
data/sql/updates/db_auth/2016_08_25_01.sql
Normal file
@@ -0,0 +1,13 @@
|
||||
ALTER TABLE auth_db_version CHANGE COLUMN 2016_08_25_00 2016_08_25_01 bit;
|
||||
|
||||
RENAME TABLE `auth_db_version` TO `version_db_auth`;
|
||||
|
||||
ALTER TABLE `version_db_auth`
|
||||
ADD COLUMN `sql_rev` VARCHAR(100) NOT NULL FIRST,
|
||||
ADD COLUMN `required_rev` VARCHAR(100) NULL AFTER `sql_rev`,
|
||||
ADD PRIMARY KEY (`sql_rev`),
|
||||
ENGINE=INNODB;
|
||||
|
||||
ALTER TABLE `version_db_auth` ADD CONSTRAINT `required` FOREIGN KEY (`required_rev`) REFERENCES `version_db_auth`(`sql_rev`);
|
||||
|
||||
|
||||
7
data/sql/updates/db_characters/2016_08_14_00.sql
Normal file
7
data/sql/updates/db_characters/2016_08_14_00.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
-- uncomment and fix following line at next revision / updates archivation
|
||||
-- ALTER TABLE auth_db_version CHANGE COLUMN xxxx_xx_xx_xx xxxx_xx_xx_xx bit;
|
||||
|
||||
--
|
||||
-- Do not remove this file when we archive sql under this folder
|
||||
-- it is needed for pending sql importer
|
||||
--
|
||||
12
data/sql/updates/db_characters/2016_08_25_00.sql
Normal file
12
data/sql/updates/db_characters/2016_08_25_00.sql
Normal file
@@ -0,0 +1,12 @@
|
||||
ALTER TABLE characters_db_version CHANGE COLUMN 2016_08_15_00 2016_08_25_00 bit;
|
||||
|
||||
RENAME TABLE `characters_db_version` TO `version_db_characters`;
|
||||
|
||||
ALTER TABLE `version_db_characters`
|
||||
ADD COLUMN `sql_rev` VARCHAR(100) NOT NULL FIRST,
|
||||
ADD COLUMN `required_rev` VARCHAR(100) NULL AFTER `sql_rev`,
|
||||
ADD PRIMARY KEY (`sql_rev`),
|
||||
ENGINE=INNODB;
|
||||
|
||||
ALTER TABLE `version_db_characters` ADD CONSTRAINT `required` FOREIGN KEY (`required_rev`) REFERENCES `version_db_characters`(`sql_rev`);
|
||||
|
||||
7
data/sql/updates/db_world/2016_08_13_00.sql
Normal file
7
data/sql/updates/db_world/2016_08_13_00.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
-- uncomment and fix following line at next revision / updates archivation
|
||||
-- ALTER TABLE auth_db_version CHANGE COLUMN xxxx_xx_xx_xx xxxx_xx_xx_xx bit;
|
||||
|
||||
--
|
||||
-- Do not remove this file when we archive sql under this folder
|
||||
-- it is needed for pending sql importer
|
||||
--
|
||||
12
data/sql/updates/db_world/2016_08_25_00.sql
Normal file
12
data/sql/updates/db_world/2016_08_25_00.sql
Normal file
@@ -0,0 +1,12 @@
|
||||
ALTER TABLE world_db_version CHANGE COLUMN 2016_08_24_01 2016_08_25_00 bit;
|
||||
|
||||
RENAME TABLE `world_db_version` TO `version_db_world`;
|
||||
|
||||
ALTER TABLE `version_db_world`
|
||||
ADD COLUMN `sql_rev` VARCHAR(100) NOT NULL FIRST,
|
||||
ADD COLUMN `required_rev` VARCHAR(100) NULL AFTER `sql_rev`,
|
||||
ADD PRIMARY KEY (`sql_rev`),
|
||||
ENGINE=INNODB;
|
||||
|
||||
ALTER TABLE `version_db_world` ADD CONSTRAINT `required` FOREIGN KEY (`required_rev`) REFERENCES `version_db_world`(`sql_rev`);
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE updateDb ()
|
||||
proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT "FALSE";
|
||||
|
||||
-- ###############################
|
||||
-- CHANGE FOLLOWING VARIABLES
|
||||
-- ###############################
|
||||
|
||||
-- fill new_version with result of this bash command: date +%s%N
|
||||
-- you must run it for each sql updates
|
||||
SET @new_version="";
|
||||
-- set previous required version, or do not touch it if you are not sure
|
||||
SET @req_version=NULL;
|
||||
|
||||
-- ###############################
|
||||
-- DO NOT CHANGE IT
|
||||
-- ###############################
|
||||
SELECT sql_rev INTO OK FROM version_db_auth WHERE sql_rev = @new_version; IF OK <> "FALSE" THEN LEAVE proc; END IF; START TRANSACTION; INSERT INTO version_db_auth VALUES(@new_version,@req_version,NULL);
|
||||
|
||||
-- ###############################
|
||||
-- INSERT YOUR SQL QUERIES HERE
|
||||
-- ###############################
|
||||
|
||||
|
||||
|
||||
|
||||
-- ###############################
|
||||
-- TERMINATE YOUR SQL QUERIES HERE
|
||||
-- ###############################
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
//
|
||||
DELIMITER ;
|
||||
CALL updateDb();
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE updateDb ()
|
||||
proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT "FALSE";
|
||||
|
||||
-- ###############################
|
||||
-- CHANGE FOLLOWING VARIABLES
|
||||
-- ###############################
|
||||
|
||||
-- fill new_version with result of this bash command: date +%s%N
|
||||
-- you must run it for each sql updates
|
||||
SET @new_version="";
|
||||
-- set previous required version, or do not touch it if you are not sure
|
||||
SET @req_version=NULL;
|
||||
|
||||
-- ###############################
|
||||
-- DO NOT CHANGE IT
|
||||
-- ###############################
|
||||
SELECT sql_rev INTO OK FROM version_db_characters WHERE sql_rev = @new_version; IF OK <> "FALSE" THEN LEAVE proc; END IF; START TRANSACTION; INSERT INTO version_db_characters VALUES(@new_version,@req_version,NULL);
|
||||
|
||||
-- ###############################
|
||||
-- INSERT YOUR SQL QUERIES HERE
|
||||
-- ###############################
|
||||
|
||||
|
||||
|
||||
|
||||
-- ###############################
|
||||
-- TERMINATE YOUR SQL QUERIES HERE
|
||||
-- ###############################
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
//
|
||||
DELIMITER ;
|
||||
CALL updateDb();
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE updateDb ()
|
||||
proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT "FALSE";
|
||||
|
||||
-- ###############################
|
||||
-- CHANGE FOLLOWING VARIABLES
|
||||
-- ###############################
|
||||
|
||||
-- fill new_version with result of this bash command: date +%s%N
|
||||
-- you must run it for each sql updates
|
||||
SET @new_version="";
|
||||
-- set previous required version, or do not touch it if you are not sure
|
||||
SET @req_version=NULL;
|
||||
|
||||
-- ###############################
|
||||
-- DO NOT CHANGE IT
|
||||
-- ###############################
|
||||
SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = @new_version; IF OK <> "FALSE" THEN LEAVE proc; END IF; START TRANSACTION; INSERT INTO version_db_world VALUES(@new_version,@req_version,NULL);
|
||||
|
||||
-- ###############################
|
||||
-- INSERT YOUR SQL QUERIES HERE
|
||||
-- ###############################
|
||||
|
||||
|
||||
|
||||
|
||||
-- ###############################
|
||||
-- TERMINATE YOUR SQL QUERIES HERE
|
||||
-- ###############################
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
//
|
||||
DELIMITER ;
|
||||
CALL updateDb();
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
|
||||
Reference in New Issue
Block a user