summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorYehonal <yehonal.azeroth@gmail.com>2017-05-01 21:07:12 +0200
committerYehonal <yehonal.azeroth@gmail.com>2017-05-01 21:17:26 +0200
commit8836d161ff0fc6e741a9059635e73a38419af673 (patch)
tree02f583285dd2972bb2e9e49b087999cecbf02f07 /bin
parent604fa387b53d3d298840026b83caebc891275849 (diff)
Improved db_assembler simplifying updating process
Implemented a check for versioning column to skip already applied updates In this way the script can combine all updates under a single sql file that can be imported directly in any case
Diffstat (limited to 'bin')
-rwxr-xr-xbin/db_assembler/db_assembler.sh38
-rwxr-xr-xbin/db_pendings/import.sh4
2 files changed, 10 insertions, 32 deletions
diff --git a/bin/db_assembler/db_assembler.sh b/bin/db_assembler/db_assembler.sh
index 823bc7b922..425b41a262 100755
--- a/bin/db_assembler/db_assembler.sh
+++ b/bin/db_assembler/db_assembler.sh
@@ -13,14 +13,6 @@ if [ -f "./config.sh" ]; then
source "./config.sh" # should overwrite previous
fi
-MD5_CMD="md5sum"
-
-reg_file="$OUTPUT_FOLDER/__db_assembler_registry"
-
-if [ -f "$reg_file" ]; then
- source "$reg_file"
-fi
-
function assemble() {
# to lowercase
database=${1,,}
@@ -73,7 +65,9 @@ function assemble() {
fi
if [ $with_updates = true ]; then
- updFile=$OUTPUT_FOLDER$database$suffix_upd"_"$curTime".sql"
+ updFile=$OUTPUT_FOLDER$database$suffix_upd".sql"
+
+ echo "" > $updFile
if [ ! ${#updates[@]} -eq 0 ]; then
echo "Generating $OUTPUT_FOLDER$database$suffix_upd ..."
@@ -88,20 +82,8 @@ function assemble() {
continue
fi
- file=$(basename "$entry")
- hash=$($MD5_CMD "$entry")
- hash="${hash%% *}" #remove file path
- n="registry__$hash"
- if [[ -z ${!n} ]]; then
- if [ ! -e $updFile ]; then
- echo "-- assembled updates" > $updFile
- fi
-
- printf -v "registry__${hash}" %s "$file"
- echo "-- New update sql: "$file
- echo "-- $file"
- cat "$entry" >> $updFile
- fi
+ echo "-- $file" >> $updFile
+ cat "$entry" >> $updFile
done
fi
done
@@ -126,10 +108,6 @@ function assemble() {
continue
fi
- if [[ ! -e $custFile ]]; then
- echo "-- assembled custom" > "$custFile"
- fi
-
echo "-- $file" >> $custFile
cat "$entry" >> $custFile
done
@@ -161,7 +139,7 @@ function run() {
}
PS3='Please enter your choice: '
-options=("Create ALL" "Create only bases" "Create only updates" "Create only customs" "Clean registry" "Quit")
+options=("Create ALL" "Create only bases" "Create only updates" "Create only customs" "Quit")
select opt in "${options[@]}"
do
case $opt in
@@ -181,10 +159,6 @@ do
run false false true
break #avoid loop
;;
- "Clean registry")
- rm "$reg_file"
- break #avoid loop
- ;;
"Quit")
break
;;
diff --git a/bin/db_pendings/import.sh b/bin/db_pendings/import.sh
index 9a059b6f5a..970d762838 100755
--- a/bin/db_pendings/import.sh
+++ b/bin/db_pendings/import.sh
@@ -63,6 +63,10 @@ function import() {
echo "DELIMITER //" >> "$newFile";
echo "CREATE PROCEDURE updateDb ()" >> "$newFile";
echo "proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE';" >> "$newFile";
+ echo "SELECT COUNT(*) INTO @COLEXISTS" >> "$newFile";
+ echo "FROM information_schema.COLUMNS" >> "$newFile";
+ echo "WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_"$db"' AND COLUMN_NAME = '"$oldVer"';" >> "$newFile";
+ echo "IF @COLEXISTS = 0 THEN LEAVE proc; END IF;" >> "$newFile";
fi
echo "$startTransaction" >> "$newFile";