fixed import.sh and implemented new optional workflow for pendings sql
Now devs can create sql for their pull requests that will be automatically imported and _decorated_ by a protection system and avoid to multiple import same queries
This commit is contained in:
+57
-13
@@ -4,12 +4,11 @@ CURRENT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|||||||
|
|
||||||
source "$CURRENT_PATH/../bash_shared/includes.sh"
|
source "$CURRENT_PATH/../bash_shared/includes.sh"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
UPDATES_PATH="$AC_PATH_ROOT/data/sql/updates/"
|
UPDATES_PATH="$AC_PATH_ROOT/data/sql/updates/"
|
||||||
|
|
||||||
function import() {
|
function import() {
|
||||||
folder="db_"$1
|
db=$1
|
||||||
|
folder="db_"$db
|
||||||
pendingPath="$AC_PATH_ROOT/data/sql/updates/pending_$folder"
|
pendingPath="$AC_PATH_ROOT/data/sql/updates/pending_$folder"
|
||||||
updPath="$UPDATES_PATH/$folder"
|
updPath="$UPDATES_PATH/$folder"
|
||||||
|
|
||||||
@@ -35,22 +34,65 @@ function import() {
|
|||||||
for entry in "$pendingPath"/*.sql
|
for entry in "$pendingPath"/*.sql
|
||||||
do
|
do
|
||||||
if [[ -e $entry ]]; then
|
if [[ -e $entry ]]; then
|
||||||
startTransaction="START TRANSACTION;";
|
oldVer=$oldDate"_"$oldCnt
|
||||||
updHeader="ALTER TABLE db_version CHANGE COLUMN "$latestUpd" "$dateToday"_"$counter" bit;";
|
|
||||||
endTransaction="COMMIT;";
|
|
||||||
|
|
||||||
cnt=$(printf -v counter "%02d" $counter ; echo $counter)
|
cnt=$(printf -v counter "%02d" $counter ; echo $counter)
|
||||||
|
|
||||||
|
newVer=$dateToday"_"$cnt
|
||||||
|
|
||||||
|
startTransaction="START TRANSACTION;";
|
||||||
|
updHeader="ALTER TABLE version_db_"$db" CHANGE COLUMN "$oldVer" "$newVer" bit;";
|
||||||
|
endTransaction="COMMIT;";
|
||||||
|
|
||||||
newFile="$updPath/"$dateToday"_"$cnt".sql"
|
newFile="$updPath/"$dateToday"_"$cnt".sql"
|
||||||
|
|
||||||
echo "$startTransaction" > "$newFile"
|
oldFile=$(basename "$entry")
|
||||||
echo "$updHeader" >> "$newFile"
|
prefix=${oldFile%_*.sql}
|
||||||
echo "--" >> "$newFile"
|
suffix=${oldFile#rev_}
|
||||||
echo "--" >> "$newFile"
|
rev=${suffix%.sql}
|
||||||
|
|
||||||
cat $entry >> "$newFile"
|
[[ $prefix = "rev" && $suffix =~ ^-?[0-9]+$ ]] && isRev=1 || isRev=0
|
||||||
echo "$endTransaction" >> "$newFile"
|
|
||||||
|
|
||||||
rm $entry
|
echo "-- DB update $oldVer -> $newVer" > "$newFile";
|
||||||
|
|
||||||
|
if [[ $isRev ]]; then
|
||||||
|
echo "DROP PROCEDURE IF EXISTS \`updateDb\`;" >> "$newFile";
|
||||||
|
echo "DELIMITER //" >> "$newFile";
|
||||||
|
echo "CREATE PROCEDURE updateDb ()" >> "$newFile";
|
||||||
|
echo "proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE';" >> "$newFile";
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$startTransaction" >> "$newFile";
|
||||||
|
echo "$updHeader" >> "$newFile";
|
||||||
|
|
||||||
|
if [[ $isRev ]]; then
|
||||||
|
echo "SELECT sql_rev INTO OK FROM version_db_"$db" WHERE sql_rev = '$rev'; IF OK <> 'FALSE' THEN LEAVE proc; END IF;" >> "$newFile";
|
||||||
|
fi;
|
||||||
|
|
||||||
|
echo "--" >> "$newFile";
|
||||||
|
echo "-- START UPDATING QUERIES" >> "$newFile";
|
||||||
|
echo "--" >> "$newFile";
|
||||||
|
|
||||||
|
cat $entry >> "$newFile";
|
||||||
|
|
||||||
|
echo "--" >> "$newFile";
|
||||||
|
echo "-- END UPDATING QUERIES" >> "$newFile";
|
||||||
|
echo "--" >> "$newFile";
|
||||||
|
|
||||||
|
echo "$endTransaction" >> "$newFile";
|
||||||
|
|
||||||
|
if [[ $isRev ]]; then
|
||||||
|
echo "END;" >> "$newFile";
|
||||||
|
echo "//" >> "$newFile";
|
||||||
|
echo "DELIMITER ;" >> "$newFile";
|
||||||
|
echo "CALL updateDb();" >> "$newFile";
|
||||||
|
echo "DROP PROCEDURE IF EXISTS \`updateDb\`;" >> "$newFile";
|
||||||
|
fi;
|
||||||
|
|
||||||
|
#rm $entry;
|
||||||
|
|
||||||
|
oldDate=$dateToday
|
||||||
|
oldCnt=$cnt
|
||||||
|
|
||||||
((counter+=1))
|
((counter+=1))
|
||||||
fi
|
fi
|
||||||
@@ -61,3 +103,5 @@ function import() {
|
|||||||
import "world"
|
import "world"
|
||||||
import "characters"
|
import "characters"
|
||||||
import "auth"
|
import "auth"
|
||||||
|
|
||||||
|
echo "Done."
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CUR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )";
|
||||||
|
|
||||||
|
rev=$( date +%s%N );
|
||||||
|
|
||||||
|
echo "INSERT INTO version_db_auth(\`sql_rev\`) VALUES ('"$rev"');" > "$CUR_PATH/rev_"$rev".sql" && echo "File created";
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CUR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )";
|
||||||
|
|
||||||
|
rev=$( date +%s%N );
|
||||||
|
|
||||||
|
echo "INSERT INTO version_db_characters(\`sql_rev\`) VALUES ('"$rev"');" > "$CUR_PATH/rev_"$rev".sql" && echo "File created";
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CUR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )";
|
||||||
|
|
||||||
|
rev=$( date +%s%N );
|
||||||
|
|
||||||
|
echo "INSERT INTO version_db_world(\`sql_rev\`) VALUES ('"$rev"');" > "$CUR_PATH/rev_"$rev".sql" && echo "File created";
|
||||||
Reference in New Issue
Block a user