When '0475' is mixed with '1.6.0.4', the latter wins as far as a plain MAX()
operator goes. Ensuring that the version is all digits should help avoid the
release version numbers in the config.upgrade_log table.
Thanks to Thomas Berezansky for suggesting a SIMILAR TO operator variation
that led to this approach.
git-svn-id: svn://svn.open-ils.org/ILS/trunk@19837
dcc99617-32d9-48b4-a31d-
7c20da2025e4
PSQL_ACCESS="-h $DB_HOST -U $DB_USER $DB_NAME";
-VERSION=$(psql -c "select max(version) from config.upgrade_log" -t $PSQL_ACCESS);
+# Need to avoid versions like '1.6.0.4' from throwing off the upgrade
+VERSION=$(psql -c "SELECT MAX(version) FROM config.upgrade_log WHERE version ~ E'^\\d+$'" -t $PSQL_ACCESS);
[ $? -gt 0 ] && die "Database access failed.";
# [ $VERBOSE ] && echo RAW VERSION: $VERSION # TODO: for verbose mode
VERSION=$(echo $VERSION | sed -e 's/^ *0*//'); # This is a separate step so we can check $? above.