mirror of
https://github.com/home-assistant/core.git
synced 2025-07-09 14:27:07 +00:00
Recorder: Extra check to incoming connections which could be not sqlite3 ones (#9867)
* Extra check to incoming connections The incoming connection could be other than self.db_url, because some 'custom_component' could be making these, and then, if they're not sqlite3 connections, an error will raise because those haven't the `dbapi_connection.isolation_level` attrib. * lint fix * simplify check: isinstance test only
This commit is contained in:
parent
ed70fc9322
commit
e57d0f345e
@ -351,6 +351,7 @@ class Recorder(threading.Thread):
|
|||||||
from sqlalchemy.engine import Engine
|
from sqlalchemy.engine import Engine
|
||||||
from sqlalchemy.orm import scoped_session
|
from sqlalchemy.orm import scoped_session
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
|
from sqlite3 import Connection
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
@ -360,7 +361,7 @@ class Recorder(threading.Thread):
|
|||||||
@event.listens_for(Engine, "connect")
|
@event.listens_for(Engine, "connect")
|
||||||
def set_sqlite_pragma(dbapi_connection, connection_record):
|
def set_sqlite_pragma(dbapi_connection, connection_record):
|
||||||
"""Set sqlite's WAL mode."""
|
"""Set sqlite's WAL mode."""
|
||||||
if self.db_url.startswith("sqlite://"):
|
if isinstance(dbapi_connection, Connection):
|
||||||
old_isolation = dbapi_connection.isolation_level
|
old_isolation = dbapi_connection.isolation_level
|
||||||
dbapi_connection.isolation_level = None
|
dbapi_connection.isolation_level = None
|
||||||
cursor = dbapi_connection.cursor()
|
cursor = dbapi_connection.cursor()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user