summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAurélien Bompard2014-10-03 17:06:13 +0200
committerAurélien Bompard2014-10-03 17:06:13 +0200
commit32ad5c42ecc355bcc05ac58fb5a9f15481ba7d05 (patch)
tree3924132c2491a2c09f07771d4c505eeca6958cfd /src
parent8be4a27e950acf49e3f72cb679f2a819cad6aa1d (diff)
downloadmailman-32ad5c42ecc355bcc05ac58fb5a9f15481ba7d05.tar.gz
mailman-32ad5c42ecc355bcc05ac58fb5a9f15481ba7d05.tar.zst
mailman-32ad5c42ecc355bcc05ac58fb5a9f15481ba7d05.zip
Diffstat (limited to 'src')
-rw-r--r--src/mailman/database/factory.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/mailman/database/factory.py b/src/mailman/database/factory.py
index 6111be8c5..fedfb816f 100644
--- a/src/mailman/database/factory.py
+++ b/src/mailman/database/factory.py
@@ -86,6 +86,14 @@ class SchemaManager:
).order_by(Version.c.version.desc()).first()
return last_version
+ def _create(self):
+ # initial DB creation
+ Model.metadata.create_all(self.database.engine)
+ command.stamp(self.alembic_cfg, "head")
+
+ def _upgrade(self):
+ command.upgrade(self.alembic_cfg, "head")
+
def setup_db(self):
context = MigrationContext.configure(self.database.store.connection())
current_rev = context.get_current_revision()
@@ -97,8 +105,7 @@ class SchemaManager:
storm_version = self.get_storm_schema_version()
if storm_version is None:
# initial DB creation
- Model.metadata.create_all(self.database.engine)
- command.stamp(self.alembic_cfg, "head")
+ self._create()
else:
# DB from a previous version managed by Storm
if storm_version.version < self.LAST_STORM_SCHEMA_VERSION:
@@ -108,9 +115,9 @@ class SchemaManager:
"Mailman beta release")
# Run migrations to remove the Storm-specific table and
# upgrade to SQLAlchemy & Alembic
- command.upgrade(self.alembic_cfg, "head")
+ self._upgrade()
elif current_rev != head_rev:
- command.upgrade(self.alembic_cfg, "head")
+ self._upgrade()
return head_rev