remove leveldb, use sqlite and unqlite. create migrator tool

This commit is contained in:
Jimmy Kiselak 2015-09-04 16:22:02 -04:00
parent 192ac6959a
commit c7758506ac
19 changed files with 1108 additions and 440 deletions
lbrynet/core

View file

@ -0,0 +1,20 @@
import sqlite3
from twisted.internet import task, reactor
import logging
def rerun_if_locked(f):
def rerun(err, *args, **kwargs):
if err.check(sqlite3.OperationalError) and err.value.message == "database is locked":
logging.warning("database was locked. rerunning %s with args %s, kwargs %s",
str(f), str(args), str(kwargs))
return task.deferLater(reactor, 0, wrapper, *args, **kwargs)
return err
def wrapper(*args, **kwargs):
d = f(*args, **kwargs)
d.addErrback(rerun, *args, **kwargs)
return d
return wrapper