diff options
author | Yehonal <yehonal.azeroth@gmail.com> | 2016-08-25 19:49:32 +0200 |
---|---|---|
committer | Yehonal <yehonal.azeroth@gmail.com> | 2016-08-25 19:49:32 +0200 |
commit | 7cab63179ee7eaf9e5982973958b7fb66170ffa9 (patch) | |
tree | 30a68f32a7cdfd47ce63dc0915f895184ba210e1 | |
parent | cb19ac25b78c883b06ac642e4b58a67ddb6d54f9 (diff) |
implemented pending workflow for sql and PR
-rwxr-xr-x | bin/db_pendings/import.sh | 54 | ||||
-rw-r--r-- | data/sql/updates/README.md | 2 | ||||
-rw-r--r-- | data/sql/updates/db_auth/2016_08_25_00.sql | 6 | ||||
-rw-r--r-- | data/sql/updates/db_auth/2016_08_25_01.sql | 13 | ||||
-rw-r--r-- | data/sql/updates/db_characters/2016_08_14_00.sql | 7 | ||||
-rw-r--r-- | data/sql/updates/db_characters/2016_08_25_00.sql | 12 | ||||
-rw-r--r-- | data/sql/updates/db_world/2016_08_13_00.sql | 7 | ||||
-rw-r--r-- | data/sql/updates/db_world/2016_08_25_00.sql | 12 | ||||
-rw-r--r-- | data/sql/updates/pending_db_auth/.dummy (renamed from data/sql/updates/pending/db_auth/.dummy) | 0 | ||||
-rw-r--r-- | data/sql/updates/pending_db_auth/template_for_auth_updates.txt | 38 | ||||
-rw-r--r-- | data/sql/updates/pending_db_characters/.dummy (renamed from data/sql/updates/pending/db_characters/.dummy) | 0 | ||||
-rw-r--r-- | data/sql/updates/pending_db_characters/template_for_characters_updates.txt | 38 | ||||
-rw-r--r-- | data/sql/updates/pending_db_world/.dummy (renamed from data/sql/updates/pending/db_world/.dummy) | 0 | ||||
-rw-r--r-- | data/sql/updates/pending_db_world/template_for_world_updates.txt | 38 |
14 files changed, 227 insertions, 0 deletions
diff --git a/bin/db_pendings/import.sh b/bin/db_pendings/import.sh new file mode 100755 index 0000000000..95bce984cc --- /dev/null +++ b/bin/db_pendings/import.sh @@ -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" diff --git a/data/sql/updates/README.md b/data/sql/updates/README.md index b17de6023e..cf6ca24033 100644 --- a/data/sql/updates/README.md +++ b/data/sql/updates/README.md @@ -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 diff --git a/data/sql/updates/db_auth/2016_08_25_00.sql b/data/sql/updates/db_auth/2016_08_25_00.sql new file mode 100644 index 0000000000..9444ba3adc --- /dev/null +++ b/data/sql/updates/db_auth/2016_08_25_00.sql @@ -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 +-- diff --git a/data/sql/updates/db_auth/2016_08_25_01.sql b/data/sql/updates/db_auth/2016_08_25_01.sql new file mode 100644 index 0000000000..49b31e9423 --- /dev/null +++ b/data/sql/updates/db_auth/2016_08_25_01.sql @@ -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`); + + diff --git a/data/sql/updates/db_characters/2016_08_14_00.sql b/data/sql/updates/db_characters/2016_08_14_00.sql new file mode 100644 index 0000000000..69a9170de9 --- /dev/null +++ b/data/sql/updates/db_characters/2016_08_14_00.sql @@ -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 +-- diff --git a/data/sql/updates/db_characters/2016_08_25_00.sql b/data/sql/updates/db_characters/2016_08_25_00.sql new file mode 100644 index 0000000000..4a55f688a3 --- /dev/null +++ b/data/sql/updates/db_characters/2016_08_25_00.sql @@ -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`); + diff --git a/data/sql/updates/db_world/2016_08_13_00.sql b/data/sql/updates/db_world/2016_08_13_00.sql new file mode 100644 index 0000000000..69a9170de9 --- /dev/null +++ b/data/sql/updates/db_world/2016_08_13_00.sql @@ -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 +-- diff --git a/data/sql/updates/db_world/2016_08_25_00.sql b/data/sql/updates/db_world/2016_08_25_00.sql new file mode 100644 index 0000000000..35c15025e9 --- /dev/null +++ b/data/sql/updates/db_world/2016_08_25_00.sql @@ -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`); + diff --git a/data/sql/updates/pending/db_auth/.dummy b/data/sql/updates/pending_db_auth/.dummy index e69de29bb2..e69de29bb2 100644 --- a/data/sql/updates/pending/db_auth/.dummy +++ b/data/sql/updates/pending_db_auth/.dummy diff --git a/data/sql/updates/pending_db_auth/template_for_auth_updates.txt b/data/sql/updates/pending_db_auth/template_for_auth_updates.txt new file mode 100644 index 0000000000..cea4ff0fe6 --- /dev/null +++ b/data/sql/updates/pending_db_auth/template_for_auth_updates.txt @@ -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`; + diff --git a/data/sql/updates/pending/db_characters/.dummy b/data/sql/updates/pending_db_characters/.dummy index e69de29bb2..e69de29bb2 100644 --- a/data/sql/updates/pending/db_characters/.dummy +++ b/data/sql/updates/pending_db_characters/.dummy diff --git a/data/sql/updates/pending_db_characters/template_for_characters_updates.txt b/data/sql/updates/pending_db_characters/template_for_characters_updates.txt new file mode 100644 index 0000000000..a73dc8a588 --- /dev/null +++ b/data/sql/updates/pending_db_characters/template_for_characters_updates.txt @@ -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`; + diff --git a/data/sql/updates/pending/db_world/.dummy b/data/sql/updates/pending_db_world/.dummy index e69de29bb2..e69de29bb2 100644 --- a/data/sql/updates/pending/db_world/.dummy +++ b/data/sql/updates/pending_db_world/.dummy diff --git a/data/sql/updates/pending_db_world/template_for_world_updates.txt b/data/sql/updates/pending_db_world/template_for_world_updates.txt new file mode 100644 index 0000000000..5872681ff5 --- /dev/null +++ b/data/sql/updates/pending_db_world/template_for_world_updates.txt @@ -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`; + |