From 6e3f9c90214e1d37fd79a6bd26821a8f6d40e180 Mon Sep 17 00:00:00 2001 From: Dom Date: Tue, 15 Nov 2022 10:12:39 +0100 Subject: [PATCH 1/2] Fix bug with quota field detection This is related to Issue #96 "Upgrade to v60.4 fails" --- setup/mail-users.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/setup/mail-users.sh b/setup/mail-users.sh index 0926d1eb..5d8a2e01 100755 --- a/setup/mail-users.sh +++ b/setup/mail-users.sh @@ -25,8 +25,11 @@ if [ ! -f $db_path ]; then echo "CREATE TABLE noreply (id INTEGER PRIMARY KEY AUTOINCREMENT, email TEXT NOT NULL UNIQUE);" | sqlite3 $db_path echo "CREATE TABLE mfa (id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER NOT NULL, type TEXT NOT NULL, secret TEXT NOT NULL, mru_token TEXT, label TEXT, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE);" | sqlite3 $db_path; echo "CREATE TABLE auto_aliases (id INTEGER PRIMARY KEY AUTOINCREMENT, source TEXT NOT NULL UNIQUE, destination TEXT NOT NULL, permitted_senders TEXT);" | sqlite3 $db_path; -elif sqlite3 $db_path ".schema users" | grep --invert-match quota; then - echo "ALTER TABLE users ADD COLUMN quota TEXT NOT NULL DEFAULT '0';" | sqlite3 $db_path; +else + sql=$(sqlite3 $db_path "SELECT sql FROM sqlite_schema WHERE name = 'users'"); + if echo $sql | grep --invert-match quota; then + echo "ALTER TABLE users ADD COLUMN quota TEXT NOT NULL DEFAULT '0';" | sqlite3 $db_path; + fi fi # Recover the database if it was hit by the Roundcube password changer "bug" (#85) From b37783fc20f50ee2efb20e84aafa6e4aa2fa35b8 Mon Sep 17 00:00:00 2001 From: David Duque Date: Sun, 20 Nov 2022 18:34:04 +0000 Subject: [PATCH 2/2] Update setup/mail-users.sh sqlite_schema isn't supported everywhere yet --- setup/mail-users.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/mail-users.sh b/setup/mail-users.sh index 5d8a2e01..30ac796f 100755 --- a/setup/mail-users.sh +++ b/setup/mail-users.sh @@ -26,7 +26,7 @@ if [ ! -f $db_path ]; then echo "CREATE TABLE mfa (id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER NOT NULL, type TEXT NOT NULL, secret TEXT NOT NULL, mru_token TEXT, label TEXT, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE);" | sqlite3 $db_path; echo "CREATE TABLE auto_aliases (id INTEGER PRIMARY KEY AUTOINCREMENT, source TEXT NOT NULL UNIQUE, destination TEXT NOT NULL, permitted_senders TEXT);" | sqlite3 $db_path; else - sql=$(sqlite3 $db_path "SELECT sql FROM sqlite_schema WHERE name = 'users'"); + sql=$(sqlite3 $db_path "SELECT sql FROM sqlite_master WHERE name = 'users'"); if echo $sql | grep --invert-match quota; then echo "ALTER TABLE users ADD COLUMN quota TEXT NOT NULL DEFAULT '0';" | sqlite3 $db_path; fi