From 1c66f69fd9f5f874de540523be54077863d9be43 Mon Sep 17 00:00:00 2001 From: Chad Furman Date: Mon, 8 Jul 2024 20:25:46 -0400 Subject: [PATCH] using migrations for alter table command --- setup/mail-users.sh | 2 -- setup/migrate.py | 7 +++++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/setup/mail-users.sh b/setup/mail-users.sh index 99dcea37..58576585 100755 --- a/setup/mail-users.sh +++ b/setup/mail-users.sh @@ -24,8 +24,6 @@ if [ ! -f "$db_path" ]; then echo "CREATE TABLE aliases (id INTEGER PRIMARY KEY AUTOINCREMENT, source TEXT NOT NULL UNIQUE, destination TEXT NOT NULL, permitted_senders TEXT);" | 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; fi # ### User Authentication diff --git a/setup/migrate.py b/setup/migrate.py index 066e0e03..9f0ddc97 100755 --- a/setup/migrate.py +++ b/setup/migrate.py @@ -190,6 +190,13 @@ def migration_14(env): db = os.path.join(env["STORAGE_ROOT"], 'mail/users.sqlite') shell("check_call", ["sqlite3", db, "CREATE TABLE auto_aliases (id INTEGER PRIMARY KEY AUTOINCREMENT, source TEXT NOT NULL UNIQUE, destination TEXT NOT NULL, permitted_senders TEXT);"]) +def migration_15(env): + # Add a column to the users table to store their quota limit. Default to '0' for unlimited. + db = os.path.join(env["STORAGE_ROOT"], 'mail/users.sqlite') + shell("check_call", ["sqlite3", db, + "ALTER TABLE users ADD COLUMN quota TEXT NOT NULL DEFAULT '0';"]) + + ########################################################### def get_current_migration():