7204e2f29ad1e93362d408ca1aaadc700d891174 mspeir Mon Feb 29 08:11:27 2016 -0800 Add check to see if table update times are differen, and if so, output a little marker next the table. Update command line options so they don't accidentally stomp on each other, suggest in CR. Explain table list file names, suggested in CR. refs #16553 #16869 diff --git src/utils/qa/updateTimesDb.sh src/utils/qa/updateTimesDb.sh index dd59d86..90c7aa6 100755 --- src/utils/qa/updateTimesDb.sh +++ src/utils/qa/updateTimesDb.sh @@ -46,52 +46,58 @@ database on Beta. For example, to compare the same assembly on Dev and Beta updateTimesDb.sh -d ce10 Or, for example to compare two different databases on Dev and Beta updateTimesDb.sh -d ce6 -b ce10 Output is formatted as a table: dev db beta db tableName <time> <time> +If -f is used, the list of tables on Dev is output to <db>.tables and the list +of tables on Beta is output to <db>.beta.tables. + Notes: - If a table isn't present on a machine, then you will see a "." in place of a time - trackDb and hgFindSpec tables are excluded from the output EOF } ##### Parse command-line input ##### OPTIND=1 # Reset is necessary if getopts was used previously in the script. # It is a good idea to make this local in a function. while getopts "hd:b:f" opt do case $opt in h) showHelp exit 0 ;; d) dbDev=$OPTARG + if [[ $dbBeta == "" ]] + then dbBeta=$dbDev + fi ;; b) dbBeta=$OPTARG ;; f) outputFiles=true ;; '?') showHelp >&2 exit 1 ;; esac done # Check if no command line options were supplied if [ $OPTIND -eq 1 ] @@ -130,22 +136,32 @@ # Underscores added between date and time to that way "column" command later on works correctly devUpdate=$(hgsql -Ne "SELECT UPDATE_TIME FROM information_schema.tables WHERE TABLE_SCHEMA='$dbDev' AND TABLE_NAME='$tbl'" \ | sed 's/ /_/g') betaUpdate=$(hgsql -h mysqlbeta -Ne "SELECT UPDATE_TIME FROM information_schema.tables WHERE TABLE_SCHEMA='$dbBeta' AND TABLE_NAME='$tbl'" \ | sed 's/ /_/g') # Can't have have completely empty entries or "column" won't work if [[ $devUpdate == "" ]] then devUpdate="." elif [[ $betaUpdate == "" ]] then betaUpdate="." fi + # Variable to hold error/diff marking + error="" + + # Check to see if table times match on Dev and Beta + if [[ $devUpdate != $betaUpdate ]] && [[ $devUpdate != "." ]] && [[ $betaUpdate != "." ]] + then + # If they don't match, mark diff lines with *** + error="***" + fi + # Update our output string with new info - output+="$tbl $devUpdate $betaUpdate\n" + output+="$tbl $devUpdate $betaUpdate $error\n" done # Output results to command line # Final sed is to remove underscores inserted as part of last step echo -e $output | column -t -s' ' | sed 's:\([0-9]\)\(_\)\([0-9]\):\1 \3:g'