sqlite - 使用 sqlalchemy 将 sqlite 数据库复制到内存中以测试烧瓶应用程序
问题描述
我想在测试我的烧瓶应用程序期间使用我的开发数据库(它包含我在测试期间无法获得的 oauth 令牌)。我希望能够将基于磁盘的开发数据库复制到内存并将其用于测试,这样它就不会改变开发数据库。
所以这是我到目前为止所做的:
在我的应用程序中选择测试时使用:
SQLALCHEMY_DATABASE_URI = "sqlite:///:memory:"
现在我希望将我现有的数据库复制到这个基于内存的临时数据库中。我已经搜索了其他答案,但最接近的是:
# open existing db
old_db = sqlite3.connect('app.db')
# get the connection to the in memory db
connection = db.get_engine().raw_connection()
# copy old_db into memory
old_db.backup(connection)
但这会导致
backup() argument 1 must be sqlite3.Connection, not _ConnectionFairy
有没有办法使用这样的连接来实现我想要的目标?
谢谢
马丁
解决方案
如果其他人来到这里,这就是我错过的 - raw_connection() 对象需要通过以下方式转换为 sqlite 连接:
connection = db.get_engine().raw_connection().connection
这是完整的代码:
# open existing db
old_db = sqlite3.connect('app.db')
# get the connection to the in memory db
conn = db.get_engine().raw_connection().connection
# copy old_db into memory
old_db.backup(conn)
马丁
推荐阅读
- gfortran - 覆盖 MPICH 包装编译器指定的标志
- python - 如何用正则表达式将此形式: (word.Word) 替换为 (word.\nWord)?
- python - 字符串长度以包含 dict 键的长度
- java - Android如何在Activity中访问Fragment Adapter?(适配器为空)
- python - 将 csv 文件转换为 TFRecord 数据集
- javascript - .setColor 上我的不和谐机器人上的声明或声明 expected.ts(1128)
- css - 拥有一个可无限滚动的表格,占据页面的剩余空间
- algorithm - 如何从 Haskell 中的排序列表创建索引二叉树?
- c# - “InvalidDataException:超出表单值计数限制 1024。” 在 asp.net 核心中将超过 1000 个值从视图发布到控制器时,模型为 null
- kendo-ui - 剑道 - 无法本地化剑道日期范围组件中的字符串“TODAY”