Open leveldb in recover on failure

master
bel 2019-12-01 14:22:17 -07:00
parent 283c2dffd2
commit c960b6db83
1 changed files with 10 additions and 0 deletions

View File

@ -18,6 +18,16 @@ func NewLevelDB(path string) (*LevelDB, error) {
db, err := leveldb.OpenFile(path, &opt.Options{
Filter: filter.NewBloomFilter(32),
})
if err != nil {
db, err = leveldb.RecoverFile(path, &opt.Options{
Filter: filter.NewBloomFilter(32),
})
if err == nil && db.Close() == nil {
db, err = leveldb.OpenFile(path, &opt.Options{
Filter: filter.NewBloomFilter(32),
})
}
}
return &LevelDB{
db: db,
}, err