forked from LBRYCommunity/lbry-sdk
remove leveldb, use sqlite and unqlite. create migrator tool
This commit is contained in:
parent
192ac6959a
commit
c7758506ac
19 changed files with 1108 additions and 440 deletions
lbrynet/core
20
lbrynet/core/sqlite_helpers.py
Normal file
20
lbrynet/core/sqlite_helpers.py
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue