我有一个烧瓶应用程序,它创建一个sqlite数据库来加载测试的夹具。当我在osx中运行pytest时,没有问题。但是,当我设置PRAGMA journal_mode = WAL'在ubuntu 14.04 docker容器中,我得到了这个:
disk I/O error
Traceback (most recent call last):
File "/tmp/my_app/util/sqlalchemy_helpers.py", line 23, in pragma_journalmode_wal
cursor.execute('PRAGMA journal_mode=WAL')
OperationalError: disk I/O error
sqlite db文件被写入tmp中的文件夹,该文件夹是使用python" tempfile.mkdtemp"动态创建的。功能。即使测试以root身份运行(因为docker),我仍然确保该文件夹具有完整的读/写/执行权限。我确认/ tmp上还有足够的空间。我有测试代码,用于创建,修改和删除数据库文件夹中的文件,并成功通过。
我似乎无法找到一种方法来获取错误代码或更好地解释失败的原因。我有什么想法可以更好地调试问题? Docker容器会出现问题吗?
答案 0 :(得分:0)
当我重新创建sqlite3数据库时,我现在遇到类似的问题:
database.sqlite3
database.sqlite3
database.sqlite3-shm
和database.sqlite3-wal
database.sqlite3-shm
和database.sqlite3-wal
一切恢复正常。