2

我想删除一个 lmdb 数据库。以下命中 txn.drop(db_name) 行上的“typerror:invalid type”。

import lmdb 
def kill_db(db_name):
    print('ABOUT TO DELETE DB '+str(db_name)+'!!!!')
    raw_input('press enter to continue or ctrl-C to not')
    env = lmdb.open(db_name, readonly=False)
    txn = lmdb.Transaction(env)
    txn.drop(db_name)

关于为什么会发生这种情况的任何线索?我是 lmdb 的新手(您可能已经猜到了)所以要温柔。

4

1 回答 1

1

也许这可以帮助你:

import lmdb 
def kill_db(db_name):
    print('ABOUT TO DELETE DB '+str(db_name)+'!!!!')
    raw_input('press enter to continue or ctrl-C to not')
    in_db = lmdb.open(db_name)
    with in_db.begin(write=True) as in_txn:
        db = in_db.open_db()
        in_txn.drop(db)
        print in_txn.stat()

您可以在此处找到文档: https ://lmdb.readthedocs.org/en/release/

另一种方式,如果您想从磁盘中完全删除 LMDB,您也可以使用:

import os
import shutil
if os.path.exists(db_name):
    shutil.rmtree(db_name) 
于 2016-02-25T13:50:01.130 回答