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