# HG changeset patch # User HIROSE Yuuji # Date 1592220210 -32400 # Node ID 04034092338d4c0430c504b02f310a82519f7f2c # Parent 31df689bad632c367d816e65c69c2101e318027f Removing group of previous world, confirmation added diff -r 31df689bad63 -r 04034092338d s4-migrate.sh --- a/s4-migrate.sh Mon Jun 15 19:55:07 2020 +0900 +++ b/s4-migrate.sh Mon Jun 15 20:23:30 2020 +0900 @@ -140,8 +140,8 @@ for arid in `cat $tmpd/repl.art.rowid`; do newval=`query "SELECT hex(val) FROM dst.article_s WHERE rowid=$arid;" \ | unhexize | sed -Ef "$sedfile" | hexize` - echo "UPDATE dst.article_s SET val=X'$newval' WHERE rowid=$arid;" >>$sql - done + echo "UPDATE dst.article_s SET val=X'$newval' WHERE rowid=$arid;" + done >$sql # Rewrite blog-links in the group # Create sed script sedfile2=${sedfile}2 @@ -166,16 +166,25 @@ | unhexize | sed -Ef "$sedfile2" | hexize` echo "UPDATE dst.article_s SET val=X'$newval' WHERE rowid=$arid;" >>$sql done - if query ".read $sql"; then - echo "Success!!" + if [ -z "`query \".read $sql\"`" ]; then query <<-EOF DELETE FROM main.article WHERE blogid IN ($blogs); DELETE FROM main.blog WHERE id IN ($blogs); DELETE FROM main.grp WHERE rowid=$grid; EOF - query "END;" - clean-orphaned - echo "Done." + s=`query "SELECT * FROM main.grp WHERE rowid=$grid;"` + if [ -z "$s" ]; then + echo "Success!!" + query "END;" + clean-orphaned + echo "Done." + else + echo Removal failed + echo "現行グループ消去ができませんでした。" + echo "書き込みの多いグループの場合は空いている時間帯に試して下さい。" + query "ROLLBACK;" + failure=-2 + fi else failure=-1 echo "Replacing failed."