From d2cb1851d0fb82e06e3e9b6e06ab0d265ae7f2a7 Mon Sep 17 00:00:00 2001 From: Rod Wright Date: Thu, 12 Feb 2026 20:40:05 -0500 Subject: [PATCH] restored the flag table and reference chain modifiactions that somehow got deleted --- database-update.sh | 77 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/database-update.sh b/database-update.sh index f166b4c..269a666 100755 --- a/database-update.sh +++ b/database-update.sh @@ -39,5 +39,80 @@ margs="--defaults-extra-file=$mysql_opt_file" # ------------------------------------- # ---------- version 5.3.0 ------------ -# Nothing to do +# +echo "Started database updates for OpenLog version 5.3.0..." + +# Import old flag data from old scheme to new flagmap table +if [[ $(mysql $margs -e "select count(*) from flagmap") == 0 ]] +then + echo "Importing flag data from old scheme to new flagmap table..." + for flagnumber in $(mysql $margs -e "select flagid from flags") + do + flag_x=$(mysql $margs -s -e "show tables like 'flag_$flagnumber'") + if [[ -n "$flag_x" ]] + then + for tgtid in $(mysql $margs -e "select id from flag_$flagnumber") + do + target=$(mysql $margs -e "select target from flag_$flagnumber where id=$tgtid") + if [[ $target == "lognotes" ]] + then + mysql $margs -e "insert into flagmap(flagid,lognoteid) values($flagnumber,$tgtid)" + elif [[ $target == "maintforms" ]] + then + mysql $margs -e "insert into flagmap(flagid,maintformid) values($flagnumber,$tgtid)" + elif [[ $target == "notetemplates" ]] + then + mysql $margs -e "insert into flagmap(flagid,notetemplateid) values($flagnumber,$tgtid)" + fi + + done + mysql $margs -e "drop table flag_$flagnumber" + fi + done + echo "...done." +fi + +# Import reference chain data into new reflinks table +if [[ $(mysql $margs -e "select count(*) from reflinks") == 0 ]] +then + echo "Importing lognote reference chain data into new reflinks table..." + for note in $(mysql $margs -e "select lognoteid from lognotes where refs!=''") + do + refstring=$(mysql $margs -e "select refs from lognotes where lognoteid=$note") + oldifs=$IFS + IFS=', ' + for target in $refstring + do + target=$(echo "$target" | xargs) + mysql $margs -e "insert into reflinks(noteid,target) values($note,$target)" + done + IFS=$oldifs + done + echo "...done." + echo "Importing template reference chain data into new reflinks table..." + for template in $(mysql $margs -e "select templateid from notetemplates where refs!=''") + do + refstring=$(mysql $margs -e "select refs from notetemplates where templateid=$template") + oldifs=$IFS + IFS=', ' + for target in $refstring + do + target=$(echo "$target" | xargs) + mysql $margs -e "insert into reflinks(templateid,target) values($template,$target)" + done + IFS=$oldifs + done + echo "...done." + mysql $margs -e "alter table lognotes drop column refs" >/dev/null 2>&1 + mysql $margs -e "alter table notetemplates drop column refs" >/dev/null 2>&1 +fi + +# Convert database to utf8mb4/utf8mb4_unicode_ci +echo "Converting database to utf8mb4 encoding..." +mysql $margs -e "ALTER DATABASE CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci" +for table in $(mysql $margs -e "show tables") +do + mysql $margs -e "ALTER TABLE $table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" +done +echo "...done." # -------------------------------------