无法通过Gino连接到SQLite数据库(异步sqlalchemy包装器)

时间:2019-04-01 00:52:31

标签: python sqlite sqlalchemy

我一直在关注Gino(异步sqlalchemy包装器)的文档,当我尝试连接到sqlite数据库时,出现错误。这是代码:

db = Gino()


class Server(db.Model):
    __tablename__ = 'servers'

    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.Unicode(), default='noname')


async def main():
    await db.set_bind('sqlite:///:memory:')
    await db.gino.create_all()

asyncio.get_event_loop().run_until_complete(main())

这是错误:

AttributeError: 'SQLiteDialect_pysqlite' object has no attribute 'init_pool'

这是否意味着可以确定Gino不支持使用SQLite数据库,否则可能出了什么问题?

1 个答案:

答案 0 :(得分:0)

位于他们的README顶部:

  

现在(2018年初),GINO仅支持一种方言asyncpg。

当然,现在是2019年初,但这看起来并没有改变:

├── gino
│   ├── dialects
│   │   ├── __init__.py
│   │   ├── asyncpg.py
│   │   └── base.py

asyncpg.py中,他们从sqlalchemy导入PGDialect并从中扩展以创建一个名为AsyncPGDialect的类,该类定义了init_pool方法。