Mercurial > hgrepos > hgweb.cgi > 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 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