- before="%s"%self.current_version()
- upgrade (self.url, self.repository)
- after="%s"%self.current_version()
- if before != after:
- logger.info("DBSchema : upgraded from %s to %s"%(before,after))
-
- # this call will trash the db altogether
- def nuke (self):
- drop_tables(self.engine)
+ before = "%s" % self.current_version()
+ migrate.upgrade(self.url, self.repository)
+ after = "%s" % self.current_version()
+ if before != after:
+ logger.info("DBSchema : upgraded version from %s to %s" %
+ (before, after))
+ else:
+ logger.debug(
+ "DBSchema : no change needed in db schema (%s==%s)" % (before, after))
+
+ # this trashes the db altogether, from the current model in sfa.storage.model
+ # I hope this won't collide with ongoing migrations and all
+ # actually, now that sfa uses its own db, this is essentially equivalent to
+ # dropping the db entirely, modulo a 'service sfa start'
+ def nuke(self):
+ model.drop_tables(self.engine)
+ # so in this case it's like we haven't initialized the db at all
+ try:
+ migrate.drop_version_control(self.url, self.repository)
+ except migrate.exceptions.DatabaseNotControlledError:
+ logger.log_exc("Failed to drop version control")
+