add repair

pull/1/head
Jan Pochyla 2017-09-12 16:53:40 +02:00
parent 4cf3fecc55
commit bae35eafa7
2 changed files with 15 additions and 0 deletions

View File

@ -137,11 +137,20 @@ var (
queryAddress = flag.String("address", "", "query contents of this address")
resync = flag.Bool("resync", false, "resync until tip")
repair = flag.Bool("repair", false, "repair the database")
)
func main() {
flag.Parse()
if *repair {
if err := RepairRocksDB(*dbPath); err != nil {
log.Fatal(err)
}
return
}
timeout := time.Duration(*rpcTimeout) * time.Second
rpc := NewBitcoinRPC(*rpcURL, *rpcUser, *rpcPass, timeout)
if *rpcCache > 0 {

View File

@ -13,6 +13,12 @@ import (
"github.com/tecbot/gorocksdb"
)
func RepairRocksDB(name string) error {
log.Printf("rocksdb: repair")
opts := gorocksdb.NewDefaultOptions()
return gorocksdb.RepairDb(name, opts)
}
type RocksDB struct {
db *gorocksdb.DB
wo *gorocksdb.WriteOptions