s4

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 diff
     1.1 --- a/s4-funcs.sh	Sun Sep 06 12:33:56 2020 +0859
     1.2 +++ b/s4-funcs.sh	Thu Sep 10 11:34:42 2020 +0859
     1.3 @@ -1991,7 +1991,9 @@
     1.4    if [ $rc -eq 0 ]; then
     1.5      echo "World [$world] への移住完了。" | html p
     1.6      echo "<p><a href=\"$dsturl?grp+$destrowid\">移住先</a></p>"
     1.7 -    clean-orphaned
     1.8 +  elif [ -n "$faillist" ]; then
     1.9 +    echo "移住後削除失敗" | html p
    1.10 +    echo "空いている時間帯に再度試して下さい。" | html p
    1.11    else
    1.12      echo "移住失敗" | html p
    1.13      echo "移動先に重複がないか確認して下さい。" | html p
     2.1 --- a/s4-migrate.sh	Sun Sep 06 12:33:56 2020 +0859
     2.2 +++ b/s4-migrate.sh	Thu Sep 10 11:34:42 2020 +0859
     2.3 @@ -31,10 +31,15 @@
     2.4    trap "rm -r $tmpd" EXIT INT HUP
     2.5  fi
     2.6  failure=0
     2.7 +faillist=""
     2.8  for grid; do
     2.9    grid=$((0 + $grid))
    2.10    gnamesql="(SELECT gname FROM main.grp WHERE rowid=$grid)"
    2.11    grp=`query "SELECT gname FROM main.grp WHERE rowid=$grid;"`
    2.12 +  if [ -z "$grp" ]; then
    2.13 +    echo "ID=$grid not found, skipped" | html p
    2.14 +    continue
    2.15 +  fi
    2.16    htmlgrp=`echo "$grp"|htmlescape`
    2.17    qgrp=`sqlquote "$grp"`
    2.18    if [ -n "`query \"SELECT gname FROM dst.grp WHERE gname=$qgrp;\"`" ]; then
    2.19 @@ -223,10 +228,11 @@
    2.20  	echo "現行グループ消去ができませんでした。"
    2.21  	echo "書き込みの多いグループの場合は空いている時間帯に試して下さい。"
    2.22  	query "ROLLBACK;"
    2.23 -	failure=-2
    2.24 +	failure=$((failure+1))
    2.25 +	faillist="$faillist${faillist:+ }$grid"
    2.26        fi
    2.27      else
    2.28 -      failure=-1
    2.29 +      failure==$((failure+1))
    2.30        echo "Replacing failed."
    2.31        query "ROLLBACK;"
    2.32      fi
    2.33 @@ -238,4 +244,5 @@
    2.34  done
    2.35  
    2.36  err "Migration ended at `date` with failure=$failure"
    2.37 +tty >/dev/null 2>&1 && test -n "$faillist" && echo "Skipped: $faillist"
    2.38  return $failure