X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Futil%2Fplugin.py;fp=ipsilon%2Futil%2Fplugin.py;h=978e4701f143cb1c8569bea8cb34ec4a4484b3dc;hp=1f66d8ebb4af6193a79165acfa8c20935f408ea7;hb=ba59365931a4e35226b3d9be216d867ff1549846;hpb=92e55de7b5dcca2252e7406025811967b24fc7b2 diff --git a/ipsilon/util/plugin.py b/ipsilon/util/plugin.py index 1f66d8e..978e470 100644 --- a/ipsilon/util/plugin.py +++ b/ipsilon/util/plugin.py @@ -5,7 +5,7 @@ import imp import cherrypy import inspect import logging -from ipsilon.util.data import AdminStore +from ipsilon.util.data import AdminStore, Store from ipsilon.util.log import Log @@ -146,7 +146,14 @@ class PluginObject(Log): return self.refresh_plugin_config() - self.on_enable() + is_upgrade = Store._is_upgrade # pylint: disable=protected-access + try: + Store._is_upgrade = True # pylint: disable=protected-access + self.on_enable() + for store in self.used_datastores(): + store.upgrade_database() + finally: + Store._is_upgrade = is_upgrade # pylint: disable=protected-access self.is_enabled = True self.debug('Plugin enabled: %s' % self.name) @@ -159,6 +166,9 @@ class PluginObject(Log): self.is_enabled = False self.debug('Plugin disabled: %s' % self.name) + def used_datastores(self): + return [] + def import_config(self, config): self._config = config