diff options
Diffstat (limited to 'migrate_2_to_3.sh')
-rwxr-xr-x | migrate_2_to_3.sh | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/migrate_2_to_3.sh b/migrate_2_to_3.sh new file mode 100755 index 0000000..a56382b --- /dev/null +++ b/migrate_2_to_3.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -euo pipefail +INDB=db.db +OUTDB=db_migrated.db + +inversion="$(sqlite3 "$INDB" 'select version from Meta')" + +if [[ $inversion != "2" ]]; then + echo >&2 "$0 migrates from version 2 to version 3, but the database is at version $inversion." + exit 1 +fi + +if [[ -f "$OUTDB" ]]; then + echo >&2 "Output database $OUTDB already exists; remove before running this script" + exit 1 +fi + +sqlite3 "$OUTDB" <schema.sql + +sqlite3 "$INDB" '.dump' | + sed '/^INSERT INTO/!d' | + sqlite3 "$OUTDB" + +sqlite3 "$OUTDB" 'update Meta set version = 3' + +echo "Migrated '$INDB' to '$OUTDB'." |