# the main codebase, and even in the same database.
q = self._query(self._db, 'dbinfo', OPTIONS_TABLE, trans=False)
q.create()
+ q._con.close() # pylint: disable=protected-access
cls_name = self.__class__.__name__
current_version = self.load_options('dbinfo').get('%s_schema'
% cls_name, {})
fallback_version = self.load_options('dbinfo').get('scheme',
{})
if 'version' in fallback_version:
- return int(fallback_version['version'])
+ # Explanation for this is in def upgrade_database(self)
+ return -1
else:
return None
# Just initialize a new schema
self._initialize_schema()
self._store_new_schema_version(self._code_schema_version())
+ elif old_schema_version == -1:
+ # This is a special-case from 1.0: we only created tables at the
+ # first time they were actually used, but the upgrade code assumes
+ # that the tables exist. So let's fix this.
+ self._initialize_schema()
+ # The old version was schema version 1
+ self._store_new_schema_version(1)
+ self.upgrade_database()
elif old_schema_version != self._code_schema_version():
# Upgrade from old_schema_version to code_schema_version
self.debug('Upgrading from schema version %i' % old_schema_version)
'provider_config']:
q = self._query(self._db, table, OPTIONS_TABLE, trans=False)
q.create()
+ q._con.close() # pylint: disable=protected-access
def _upgrade_schema(self, old_version):
if old_version == 1:
else:
raise NotImplementedError()
+ def create_plugin_data_table(self, plugin_name):
+ if not self.is_readonly:
+ table = plugin_name+'_data'
+ q = self._query(self._db, table, UNIQUE_DATA_TABLE,
+ trans=False)
+ q.create()
+ q._con.close() # pylint: disable=protected-access
+
class UserStore(Store):
def _initialize_schema(self):
q = self._query(self._db, 'users', OPTIONS_TABLE, trans=False)
q.create()
+ q._con.close() # pylint: disable=protected-access
def _upgrade_schema(self, old_version):
if old_version == 1:
q = self._query(self._db, 'transactions', UNIQUE_DATA_TABLE,
trans=False)
q.create()
+ q._con.close() # pylint: disable=protected-access
def _upgrade_schema(self, old_version):
if old_version == 1:
q = self._query(self._db, self.table, UNIQUE_DATA_TABLE,
trans=False)
q.create()
+ q._con.close() # pylint: disable=protected-access
def _upgrade_schema(self, old_version):
if old_version == 1: