22# pylint: disable=missing-type-doc
33try :
44 import sqlalchemy
5+ from sqlalchemy .pool import StaticPool
56 import sqlalchemy .types as sqltypes
67 from sqlalchemy .schema import UniqueConstraint
78 from sqlalchemy .sql import and_
@@ -29,7 +30,7 @@ def __init__(self, *args, **kwargs): # pylint: disable=unused-argument
2930 self ._table = None
3031 self ._connection = None
3132 self .table = kwargs .get ("table" , "pymodbus" )
32- self .database = kwargs .get ("database" , "sqlite:///pymodbus.db " )
33+ self .database = kwargs .get ("database" , "sqlite:///:memory: " )
3334 self ._db_create (self .table , self .database )
3435
3536 def __str__ (self ):
@@ -92,8 +93,8 @@ def _db_create(self, table, database):
9293 :param table: The table name to create
9394 :param database: The database uri to use
9495 """
95- self . _engine = sqlalchemy . create_engine ( database , echo = False )
96- self ._metadata = sqlalchemy .MetaData ( self . _engine )
96+ args = dict ( echo = False , connect_args = { "check_same_thread" : False }, poolclass = StaticPool )
97+ self ._engine = sqlalchemy .create_engine ( database , ** args )
9798 self ._table = sqlalchemy .Table (
9899 table ,
99100 self ._metadata ,
@@ -102,7 +103,7 @@ def _db_create(self, table, database):
102103 sqlalchemy .Column ("value" , sqltypes .Integer ),
103104 UniqueConstraint ("type" , "index" , name = "key" ),
104105 )
105- self ._table .create (checkfirst = True )
106+ self ._table .create (self . _engine )
106107 self ._connection = self ._engine .connect ()
107108
108109 def _get (self , type , offset , count ): # pylint: disable=redefined-builtin
0 commit comments