Sfoglia il codice sorgente

Add the migrate-1.1.0 script

Son NK 5 anni fa
parent
commit
f5503a1704
2 ha cambiato i file con 31 aggiunte e 0 eliminazioni
  1. 0 0
      scripts/__init__.py
  2. 31 0
      scripts/migrate-1.1.0.py

+ 0 - 0
scripts/__init__.py


+ 31 - 0
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)