【问题标题】:drop lmdb database using python使用 python 删除 lmdb 数据库
【发布时间】:2016-02-25 21:56:10
【问题描述】:

我想删除一个 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 的新手(您可能已经猜到了)所以要温柔。

【问题讨论】:

  • TypeError 的其余部分是什么?它应该说明它所期望的和收到的。
  • 关于删除数据库 testdb.test!!!!按 Enter 继续或按 ctrl-C 不回溯(最近一次调用最后一次):文件“lmdb_utils.py”,第 215 行,在 kill_db('testdb.test') 文件“lmdb_utils.py”,第 198 行,在 kill_db txn.drop(db_name,delete=True) TypeError: invalid type

标签: python lmdb


【解决方案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) 

【讨论】:

  • 谢谢,我没有注意到数据库只是驻留在本地目录中。我还没有尝试过 in_txn.drop
猜你喜欢
  • 2016-03-28
  • 1970-01-01
  • 2011-07-12
  • 1970-01-01
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 2014-11-14
  • 1970-01-01
相关资源
最近更新 更多