From f5503a17046f3e2167b4bd80cf54e1e4c3703374 Mon Sep 17 00:00:00 2001 From: Son NK Date: Sat, 29 Feb 2020 00:01:20 +0700 Subject: [PATCH] Add the migrate-1.1.0 script --- scripts/__init__.py | 0 scripts/migrate-1.1.0.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 scripts/__init__.py create mode 100644 scripts/migrate-1.1.0.py diff --git a/scripts/__init__.py b/scripts/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/migrate-1.1.0.py b/scripts/migrate-1.1.0.py new file mode 100644 index 00000000..9effde0f --- /dev/null +++ b/scripts/migrate-1.1.0.py @@ -0,0 +1,31 @@ +"""This ad-hoc script is to be run when upgrading from 1.0.5 to 1.1.0 +""" +from app.extensions import db +from app.log import LOG +from app.models import Mailbox, GenEmail, User + + +def convert_user_full_mailbox(user): + # create a default mailbox + default_mb = Mailbox.get_by(user_id=user.id, email=user.email) + if not default_mb: + LOG.d("create default mailbox for user %s", user) + default_mb = Mailbox.create(user_id=user.id, email=user.email, verified=True) + db.session.commit() + + # assign existing alias to this mailbox + for gen_email in GenEmail.query.filter_by(user_id=user.id): + if not gen_email.mailbox_id: + LOG.d("Set alias %s mailbox to default mailbox", gen_email) + gen_email.mailbox_id = default_mb.id + + # finally set user to full_mailbox + user.full_mailbox = True + user.default_mailbox_id = default_mb.id + db.session.commit() + + +if __name__ == "__main__": + for user in User.query.all(): + if not user.full_mailbox: + convert_user_full_mailbox(user)