aboutsummaryrefslogtreecommitdiffstats
path: root/tests/00-db-migration-0-to-1-foreign-key-violation/run
blob: f2d12a9170566e9e0441c34db645625114f74361 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# create new schema and add INBOX
interimap
xgrep "^Creating new schema in database file " <"$STDERR"
xgrep -Fx "database: Created mailbox INBOX" <"$STDERR"

# empty table `mailboxes` and revert its schema to version 0
sqlite3 "$XDG_DATA_HOME/interimap/remote.db" <<-EOF
	PRAGMA foreign_keys = OFF;
	PRAGMA user_version = 0;
	DROP TABLE mailboxes;
	CREATE TABLE mailboxes (
	    idx        INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
	    mailbox    TEXT    NOT NULL CHECK (mailbox != '') UNIQUE,
	    subscribed BOOLEAN NOT NULL
	);
EOF

# check that migration fails due to broken referential integrity
! interimap
xgrep -Fx "Upgrading database version from 0" <"$STDERR"
xgrep -Fx "database: ERROR: Broken referential integrity!  Refusing to commit changes." <"$STDERR"

# vim: set filetype=sh :