Changeset 16098
- Timestamp:
- Dec 18, 2016, 2:54:17 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cardsplugin/trunk/cards/core.py
r14811 r16098 127 127 128 128 def environment_created(self): 129 db_connector, _ = DatabaseManager(self.env).get_connector() 130 with self.env.db_transaction as db: 131 cursor = db.cursor() 132 for table in SCHEMA: 133 for stmt in db_connector.to_sql(table): 134 cursor.execute(stmt) 135 cursor.execute(""" 136 INSERT INTO system (name, value) 137 VALUES (%s, %s) 138 """, (PLUGIN_NAME, PLUGIN_VERSION)) 129 dbm = DatabaseManager(self.env) 130 dbm.create_tables(SCHEMA) 131 dbm.set_database_version(PLUGIN_VERSION, PLUGIN_NAME) 139 132 140 def environment_needs_upgrade(self, db): 141 dbver = self.get_db_version() 142 if dbver == PLUGIN_VERSION: 143 return False 144 elif dbver > PLUGIN_VERSION: 145 self.env.log.info("%s database schema version is %s, should be %s", 146 PLUGIN_NAME, dbver, PLUGIN_VERSION) 147 return True 133 def environment_needs_upgrade(self): 134 dbm = DatabaseManager(self.env) 135 return dbm.needs_upgrade(PLUGIN_VERSION, PLUGIN_NAME) 148 136 149 def upgrade_environment(self, db): 150 db_connector, _ = DatabaseManager(self.env).get_connector() 151 cursor = db.cursor() 152 dbver = self.get_db_version() 153 if dbver == 0: 154 self.env.log.info("Initialize %s database schema to version %s", 155 PLUGIN_NAME, PLUGIN_VERSION) 156 for table in SCHEMA: 157 for stmt in db_connector.to_sql(table): 158 cursor.execute(stmt) 159 cursor.execute(""" 160 INSERT INTO system (name, value) 161 VALUES (%s, %s) 162 """, (PLUGIN_NAME, PLUGIN_VERSION)) 137 def upgrade_environment(self): 138 dbm = DatabaseManager(self.env) 139 if dbm.get_database_version(PLUGIN_NAME) == 0: 140 dbm.create_tables(SCHEMA) 141 dbm.set_database_version(PLUGIN_VERSION, PLUGIN_NAME) 163 142 else: 164 while dbver != PLUGIN_VERSION: 165 dbver = dbver + 1 166 self.env.log.info("Upgrade %s database schema to version %s", 167 PLUGIN_NAME, dbver) 168 modulename = 'db%i' % dbver 169 upgrades = __import__('cards.upgrades', globals(), locals(), [modulename]) 170 script = getattr(upgrades, modulename) 171 script.do_upgrade(self.env, dbver, cursor) 172 cursor.execute(""" 173 UPDATE system 174 SET value=%s 175 WHERE name=%s 176 """, (PLUGIN_VERSION, PLUGIN_NAME)) 177 178 def get_db_version(self): 179 rows = self.env.db_query(""" 180 SELECT value FROM system WHERE name='%s' 181 """ % PLUGIN_NAME) 182 return int(rows[0][0]) if rows else 0 143 dbm.upgrade(PLUGIN_VERSION, PLUGIN_NAME, 'cards.upgrades') 183 144 184 145 # ITemplateProvider methods
Note: See TracChangeset
for help on using the changeset viewer.