summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYehonal <yehonal.azeroth@gmail.com>2016-08-25 19:49:32 +0200
committerYehonal <yehonal.azeroth@gmail.com>2016-08-25 19:49:32 +0200
commit7cab63179ee7eaf9e5982973958b7fb66170ffa9 (patch)
tree30a68f32a7cdfd47ce63dc0915f895184ba210e1
parentcb19ac25b78c883b06ac642e4b58a67ddb6d54f9 (diff)
implemented pending workflow for sql and PR
-rwxr-xr-xbin/db_pendings/import.sh54
-rw-r--r--data/sql/updates/README.md2
-rw-r--r--data/sql/updates/db_auth/2016_08_25_00.sql6
-rw-r--r--data/sql/updates/db_auth/2016_08_25_01.sql13
-rw-r--r--data/sql/updates/db_characters/2016_08_14_00.sql7
-rw-r--r--data/sql/updates/db_characters/2016_08_25_00.sql12
-rw-r--r--data/sql/updates/db_world/2016_08_13_00.sql7
-rw-r--r--data/sql/updates/db_world/2016_08_25_00.sql12
-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.txt38
-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.txt38
-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.txt38
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`;
+