общий кеш sqlalchemy и SQLite
SQLite поддерживает «общий кеш» для:memory:
базы данных, когда они открыты со специальным URI (в соответствии сsqlite.org):
[T] ту же самую базу данных в памяти можно открыть двумя или более подключениями к базе данных следующим образом:
rc = sqlite3_open("file::memory:?cache=shared",&db);
Я могу воспользоваться этим в Python 3.4, используяПараметр URI заsqlite3.connect()
:
sqlite3.connect('file::memory:?cache=shared', uri=True)
Тем не менее, я не могу заставить то же самое работать с SQLAlchemy:
engine = sqlalchemy.create_engine('sqlite:///:memory:?cache=shared')
engine.connect()
...
TypeError: 'cache' is an invalid keyword argument for this function
Есть ли способ заставить SQLAlchemy использовать общий кеш?
редактировать:
На Python 3.4 я могу использоватьcreator
аргументcreate_engine
чтобы решить проблему, но проблема остается на других версиях Python:
creator = lambda: sqlite3.connect('file::memory:?cache=shared', uri=True)
engine = sqlalchemy.create_engine('sqlite://', creator=creator)
engine.connect()