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 に答える