Add the migrate-1.1.0 script

This commit is contained in:
Son NK 2020-02-29 00:01:20 +07:00
parent 7e1119406d
commit f5503a1704
2 changed files with 31 additions and 0 deletions

0
scripts/__init__.py Normal file
View File

31
scripts/migrate-1.1.0.py Normal file
View File

@ -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)