// RepairDatabase attempts to repair a database. // // If the database is unrepairable, an error is returned. func RepairDatabase(dbname string, o *Options) error { var errStr *C.char ldbname := C.CString(dbname) defer C.free(unsafe.Pointer(ldbname)) C.leveldb_repair_db(o.Opt, ldbname, &errStr) if errStr != nil { return DatabaseError(C.GoString(errStr)) } return nil }
func Repair(cfg *Config) error { db := new(DB) db.cfg = cfg err := db.open() defer db.Close() //open ok, do not need repair if err == nil { return nil } var errStr *C.char ldbname := C.CString(db.cfg.Path) defer C.leveldb_free(unsafe.Pointer(ldbname)) C.leveldb_repair_db(db.opts.Opt, ldbname, &errStr) if errStr != nil { return saveError(errStr) } return nil }
func (s Store) Repair(path string, cfg *config.Config) error { db := new(DB) db.cfg = &cfg.LevelDB db.path = path err := db.open() defer db.Close() //open ok, do not need repair if err == nil { return nil } var errStr *C.char ldbname := C.CString(path) defer C.leveldb_free(unsafe.Pointer(ldbname)) C.leveldb_repair_db(db.opts.Opt, ldbname, &errStr) if errStr != nil { return saveError(errStr) } return nil }