added Database.temp_sqlite_regtest
This commit is contained in:
parent
12915143b8
commit
b7ff6569e4
2 changed files with 17 additions and 11 deletions
|
@ -1,5 +1,6 @@
|
|||
import os
|
||||
import asyncio
|
||||
import tempfile
|
||||
from typing import List, Optional, Tuple, Iterable, TYPE_CHECKING
|
||||
from concurrent.futures import Executor, ThreadPoolExecutor, ProcessPoolExecutor
|
||||
from functools import partial
|
||||
|
@ -56,6 +57,14 @@ class Database:
|
|||
self.multiprocess = multiprocess
|
||||
self.executor: Optional[Executor] = None
|
||||
|
||||
@classmethod
|
||||
def temp_sqlite_regtest(cls):
|
||||
from lbry import Config, RegTestLedger
|
||||
directory = tempfile.mkdtemp()
|
||||
conf = Config.with_same_dir(directory)
|
||||
ledger = RegTestLedger(conf)
|
||||
return cls(ledger, conf.db_url_or_default)
|
||||
|
||||
@classmethod
|
||||
def from_memory(cls, ledger):
|
||||
return cls(ledger, 'sqlite:///:memory:')
|
||||
|
|
|
@ -54,16 +54,13 @@ def initialize(url: str, ledger: Ledger, track_metrics=False, block_and_filter=N
|
|||
|
||||
def check_version_and_create_tables():
|
||||
context = ctx()
|
||||
if SCHEMA_VERSION:
|
||||
if context.has_table('version'):
|
||||
version = context.fetchone(select(Version.c.version).limit(1))
|
||||
if version and version['version'] == SCHEMA_VERSION:
|
||||
return
|
||||
metadata.drop_all(context.engine)
|
||||
metadata.create_all(context.engine)
|
||||
context.execute(Version.insert().values(version=SCHEMA_VERSION))
|
||||
else:
|
||||
metadata.create_all(context.engine)
|
||||
if context.has_table('version'):
|
||||
version = context.fetchone(select(Version.c.version).limit(1))
|
||||
if version and version['version'] == SCHEMA_VERSION:
|
||||
return
|
||||
metadata.drop_all(context.engine)
|
||||
metadata.create_all(context.engine)
|
||||
context.execute(Version.insert().values(version=SCHEMA_VERSION))
|
||||
|
||||
|
||||
class QueryContext(NamedTuple):
|
||||
|
@ -375,7 +372,7 @@ def execute_fetchall(sql):
|
|||
|
||||
def get_best_height():
|
||||
return ctx().fetchone(
|
||||
select(func.coalesce(func.max(TX.c.height), 0).label('total')).select_from(TX)
|
||||
select(func.coalesce(func.max(TX.c.height), -1).label('total')).select_from(TX)
|
||||
)['total']
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue