mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-22 22:25:47 +01:00
make db.py context manager operate in a transaction.
This commit is contained in:
parent
bf3c44b3c4
commit
b56877d470
1 changed files with 8 additions and 4 deletions
12
lnbits/db.py
12
lnbits/db.py
|
@ -15,22 +15,26 @@ class Database:
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def __exit__(self, exc_type, exc_val, exc_tb):
|
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||||
|
self.connection.commit()
|
||||||
self.cursor.close()
|
self.cursor.close()
|
||||||
self.connection.close()
|
self.connection.close()
|
||||||
|
|
||||||
def fetchall(self, query: str, values: tuple = ()) -> list:
|
def fetchall(self, query: str, values: tuple = ()) -> list:
|
||||||
"""Given a query, return cursor.fetchall() rows."""
|
"""Given a query, return cursor.fetchall() rows."""
|
||||||
self.cursor.execute(query, values)
|
self.execute(query, values)
|
||||||
return self.cursor.fetchall()
|
return self.cursor.fetchall()
|
||||||
|
|
||||||
def fetchone(self, query: str, values: tuple = ()):
|
def fetchone(self, query: str, values: tuple = ()):
|
||||||
self.cursor.execute(query, values)
|
self.execute(query, values)
|
||||||
return self.cursor.fetchone()
|
return self.cursor.fetchone()
|
||||||
|
|
||||||
def execute(self, query: str, values: tuple = ()) -> None:
|
def execute(self, query: str, values: tuple = ()) -> None:
|
||||||
"""Given a query, cursor.execute() it."""
|
"""Given a query, cursor.execute() it."""
|
||||||
self.cursor.execute(query, values)
|
try:
|
||||||
self.connection.commit()
|
self.cursor.execute(query, values)
|
||||||
|
except sqlite3.Error as exc:
|
||||||
|
self.connection.rollback()
|
||||||
|
raise exc
|
||||||
|
|
||||||
|
|
||||||
def open_db(db_name: str = "database") -> Database:
|
def open_db(db_name: str = "database") -> Database:
|
||||||
|
|
Loading…
Add table
Reference in a new issue