wal*_*man 7 python sqlite sqlalchemy
我正在从现有的 shema 创建数据库,并将其存储在:memory:.
db = Database(filename=':memory:', schema='schema.sql')
db.recreate()
Run Code Online (Sandbox Code Playgroud)
我现在想将其“链接”到 SQL Alchemy。遵循了不同的方法,但无法得到正确的结果。
我目前的尝试如下:
engine = create_engine('sqlite:///:memory:')
Base = automap_base()
Base.prepare(engine, reflect=True)
User = Base.classes.user
session = Session(engine)
Run Code Online (Sandbox Code Playgroud)
就像我尝试过的其他东西一样,这会抛出AttributeError: user。
我怎样才能一起完成这项工作?
文档的相关部分位于: https: //sqlite.org/inmemorydb.html。
如果使用的:memory:话每个连接都会有自己的内存数据库。诀窍是使用具有URI格式的内存命名数据库,如下所示
import random
import string
import sqlite3
# creating a random name for the temporary memory DB
sqlite_shared_name = "test_db_{}".format(
random.sample(string.ascii_letters, k=4)
)
create_engine(
"sqlite:///file:{}?mode=memory&cache=shared&uri=true".format(
sqlite_shared_name))
Run Code Online (Sandbox Code Playgroud)
uri=true(请参阅 SQLAlchemy 文档)mode=memorycache=shared如果您有另一个连接,那么您可以使用或多或少相同的连接字符串。例如,要使用 python 模块获取与内存中同一数据库的连接,您可以从查询字符串(和方言部分)中sqlite删除并将其作为参数传递:uri=truesqlite:///
dest = sqlite3.connect(
"file:{}?mode=memory&cache=shared".format(sqlite_shared_name),
uri=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3282 次 |
| 最近记录: |