hooks/syncschema.py
branchstable
changeset 6750 ef513c03a224
parent 6427 c8a5ac2d1eaa
parent 6735 7d37ba09f4e3
child 6789 f38963f7c91d
equal deleted inserted replaced
6746:f29a5f015fc3 6750:ef513c03a224
   283 
   283 
   284     def rename(self, oldname, newname):
   284     def rename(self, oldname, newname):
   285         self.session.vreg.schema.rename_entity_type(oldname, newname)
   285         self.session.vreg.schema.rename_entity_type(oldname, newname)
   286         # we need sql to operate physical changes on the system database
   286         # we need sql to operate physical changes on the system database
   287         sqlexec = self.session.system_sql
   287         sqlexec = self.session.system_sql
   288         sqlexec('ALTER TABLE %s%s RENAME TO %s%s' % (SQL_PREFIX, oldname,
   288         dbhelper= self.session.pool.source('system').dbhelper
   289                                                      SQL_PREFIX, newname))
   289         sql = dbhelper.sql_rename_table(SQL_PREFIX+oldname,
       
   290                                         SQL_PREFIX+newname)
       
   291         sqlexec(sql)
   290         self.info('renamed table %s to %s', oldname, newname)
   292         self.info('renamed table %s to %s', oldname, newname)
   291         sqlexec('UPDATE entities SET type=%s WHERE type=%s',
   293         sqlexec('UPDATE entities SET type=%(newname)s WHERE type=%(oldname)s',
   292                 (newname, oldname))
   294                 {'newname': newname, 'oldname': oldname})
   293         sqlexec('UPDATE deleted_entities SET type=%s WHERE type=%s',
   295         sqlexec('UPDATE deleted_entities SET type=%(newname)s WHERE type=%(oldname)s',
   294                 (newname, oldname))
   296                 {'newname': newname, 'oldname': oldname})
   295         # XXX transaction records
   297         # XXX transaction records
   296 
   298 
   297     def precommit_event(self):
   299     def precommit_event(self):
   298         self.rename(self.oldname, self.newname)
   300         self.rename(self.oldname, self.newname)
   299 
   301