def slot_restore(self, arg): """Restore a dumped database. It can be either an existing one, or one which has been deleted. """ # Get source file: dbpath = self.getBDbPath() if not dbpath: return None restore = Restore(dbpath) dbname = restore.getDbName() if not dbname: message(_("Couldn't open database file '%1'"), (dbpath, )) return state = 0 try: if dbname in self.dbList: if not confirmationDialog( _("Replace Database?"), argSub( _("Are you sure you want to replace database '%1'?" ), (dbname, )), False): restore.close() return self.deletedb(dbname) self.db.send(u"""CREATE DATABASE %s OWNER %s ENCODING 'UTF8'""" % (dbname, ADMIN)) state = 1 # Add to 'databases' table self.db.send(u"INSERT INTO databases VALUES (?, ?, ?, ?)", (self.db.getTime(), dbname, u'', u'')) state = 2 newmaster = self.connect(dbname) state = 3 guimessage = argSub( _("New database '%1' created, now read in the data"), (dbname, )) restore.setMaster(newmaster) guiReport(_("Restore Database"), restore, guimessage) #message(_("New database now set up")) self.usersPrivileges(newmaster) # Ensure connection is closed restore = None newmaster.close() newmaster = None except: print_exc() message(_("Couldn't create new database (%1)"), (dbname, )) if (state >= 3): newmaster.close() if (state >= 2): self.db.send(u"DELETE FROM databases WHERE name = ?", (dbname, )) if (state >= 1): self.db.send(u"DROP DATABASE %s" % dbname) # adjust display, select new db self.initDBlist()
def slot_restore(self, arg): """Restore a dumped database. It can be either an existing one, or one which has been deleted. """ # Get source file: dbpath = self.getBDbPath() if not dbpath: return None restore = Restore(dbpath) dbname = restore.getDbName() if not dbname: message(_("Couldn't open database file '%1'"), (dbpath,)) return state = 0 try: if dbname in self.dbList: if not confirmationDialog(_("Replace Database?"), argSub(_("Are you sure you want to replace database '%1'?"), (dbname,)), False): restore.close() return self.deletedb(dbname) self.db.send(u"""CREATE DATABASE %s OWNER %s ENCODING 'UTF8'""" % (dbname, ADMIN)) state = 1 # Add to 'databases' table self.db.send(u"INSERT INTO databases VALUES (?, ?, ?, ?)", (self.db.getTime(), dbname, u'', u'')) state = 2 newmaster = self.connect(dbname) state = 3 guimessage = argSub(_("New database '%1' created, now read in the data"), (dbname,)) restore.setMaster(newmaster) guiReport(_("Restore Database"), restore, guimessage) #message(_("New database now set up")) self.usersPrivileges(newmaster) # Ensure connection is closed restore = None newmaster.close() newmaster = None except: print_exc() message(_("Couldn't create new database (%1)"), (dbname,)) if (state >= 3): newmaster.close() if (state >= 2): self.db.send(u"DELETE FROM databases WHERE name = ?", (dbname,)) if (state >= 1): self.db.send(u"DROP DATABASE %s" % dbname) # adjust display, select new db self.initDBlist()