我有一个类似于以下的函数,我想将其用于计算sqlite数据库文件的哈希,以便将其与我为检测任何更改所做的上次备份进行比较。
DEF get_hash(FILE_PATH): #http://stackoverflow.com/a/3431838/1391717 hash_sha1 = hashlib.sha1 张开(FILE_PATH, “RB”)为f: 为块在ITER(拉姆达:f.read(4096) ,b“”): hash_sha1.update(chunk) 返回hash_sha1.hexdigest()
我计划锁定数据库,因此在计算哈希值时没有人可以写入数据库。我这样做有可能造成任何伤害吗?
// http://codereview.stackexchange.com/questions/78643/create-sqlite-backups connection = sqlite3.connect(database_file) cursor = connection.cursor() cursor.execute(“ begin立即开始”) db_hash = get_hash(args 。数据库)
sqlite3数据库文件可以并且可以被许多不同的读者同时读取。在这方面,与sqlite3并发没有问题。sqlite3固有的问题涉及到写入文件,仅允许一个写入器。
所以,如果您只阅读您的罚款。
如果您打算锁定数据库并成功实现该目的,那么在计算哈希值时,您将成为具有独占访问权的写程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句