changeset 868:2eaa037f35d0

Error handling of migration fixed
author HIROSE Yuuji <yuuji@gentei.org>
date Thu, 10 Sep 2020 11:34:42 +0859
parents 1b0669c854cf
children b2bb87a9b8a1
files s4-funcs.sh s4-migrate.sh
diffstat 2 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/s4-funcs.sh	Sun Sep 06 12:33:56 2020 +0859
+++ b/s4-funcs.sh	Thu Sep 10 11:34:42 2020 +0859
@@ -1991,7 +1991,9 @@
   if [ $rc -eq 0 ]; then
     echo "World [$world] への移住完了。" | html p
     echo "<p><a href=\"$dsturl?grp+$destrowid\">移住先</a></p>"
-    clean-orphaned
+  elif [ -n "$faillist" ]; then
+    echo "移住後削除失敗" | html p
+    echo "空いている時間帯に再度試して下さい。" | html p
   else
     echo "移住失敗" | html p
     echo "移動先に重複がないか確認して下さい。" | html p
--- a/s4-migrate.sh	Sun Sep 06 12:33:56 2020 +0859
+++ b/s4-migrate.sh	Thu Sep 10 11:34:42 2020 +0859
@@ -31,10 +31,15 @@
   trap "rm -r $tmpd" EXIT INT HUP
 fi
 failure=0
+faillist=""
 for grid; do
   grid=$((0 + $grid))
   gnamesql="(SELECT gname FROM main.grp WHERE rowid=$grid)"
   grp=`query "SELECT gname FROM main.grp WHERE rowid=$grid;"`
+  if [ -z "$grp" ]; then
+    echo "ID=$grid not found, skipped" | html p
+    continue
+  fi
   htmlgrp=`echo "$grp"|htmlescape`
   qgrp=`sqlquote "$grp"`
   if [ -n "`query \"SELECT gname FROM dst.grp WHERE gname=$qgrp;\"`" ]; then
@@ -223,10 +228,11 @@
 	echo "現行グループ消去ができませんでした。"
 	echo "書き込みの多いグループの場合は空いている時間帯に試して下さい。"
 	query "ROLLBACK;"
-	failure=-2
+	failure=$((failure+1))
+	faillist="$faillist${faillist:+ }$grid"
       fi
     else
-      failure=-1
+      failure==$((failure+1))
       echo "Replacing failed."
       query "ROLLBACK;"
     fi
@@ -238,4 +244,5 @@
 done
 
 err "Migration ended at `date` with failure=$failure"
+tty >/dev/null 2>&1 && test -n "$faillist" && echo "Skipped: $faillist"
 return $failure

yatex.org