diff --git a/leveldb.go b/leveldb.go index 18f26c0..875d54d 100755 --- a/leveldb.go +++ b/leveldb.go @@ -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