diff options
author | Tom Smeding <tom.smeding@gmail.com> | 2020-08-01 14:54:19 +0200 |
---|---|---|
committer | Tom Smeding <tom.smeding@gmail.com> | 2020-08-01 14:54:19 +0200 |
commit | 4c5dee222b940dcfdf6f7356b6fa3b3bf4dbcb73 (patch) | |
tree | 0819d116d4d0c388abab6b417c90e386245ec2cc /migrate_2_to_3.sh | |
parent | 6244f4a65aa391cae85bfc6930589ba7feaa536e (diff) |
server: autoincrement on msgid to prevent reuse if room is deleted
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'." |