如何使用SQLAlchemy设置SQLite PRAGMA语句

前端之家收集整理的这篇文章主要介绍了如何使用SQLAlchemy设置SQLite PRAGMA语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_0@ 我希望sqlAlchemy将sqlite .journal文件放在内存中以加快性能.我试过这个:
sqlite_db_engine = create_engine('sqlite:///%s' % str(dbname),connect_args = {'PRAGMA     journal_mode':'MEMORY','PRAGMA synchronous':'OFF','PRAGMA temp_store':'MEMORY','PRAGMA cache_size':'5000000'})

db = sqlite_db_engine.connect()

和这个:

sqlite_db_engine = create_engine('sqlite:///%s' % str(dbname))

db = sqlite_db_engine.connect()
db.execute("PRAGMA journal_mode = MEMORY")
db.execute("PRAGMA synchronous = OFF")
db.execute("PRAGMA temp_store = MEMORY")
db.execute("PRAGMA cache_size = 500000")

没有运气对于长时间的事务,我仍然可以看到.journal文件正在磁盘上创建.是否有另一种方式来设定?

*注意我用内置的python sqlite模块没有问题

基本上你应该可以重写关于外键的例子来实现你想要的.看看 https://stackoverflow.com/a/7831210/1890086
engine = create_engine(database_url)

def _fk_pragma_on_connect(dbapi_con,con_record):
    dbapi_con.execute('PRAGMA journal_mode = MEMORY')
    # ...

from sqlalchemy import event
event.listen(engine,'connect',_fk_pragma_on_connect)

猜你在找的Sqlite相关文章