Python/SQLite3:尝试附加数据库时随机出现“数据库错误:数据库磁盘映像格式错误”

mnowg1ta  于 7个月前  发布在  SQLite
关注(0)|答案(1)|浏览(67)

为了将数据收集/合并到一个主数据库(名为output_db)中,我尝试附加几个输入数据库(一次一个),但有些随机失败,并显示“数据库错误:数据库磁盘映像格式错误”:

connection = sqlite3.connect(output_db)
connection.execute("attach '" + dat_file_path + "' as input_db")
"Database Error: database disk image is malformed"

字符串
使用DB Browser for SQLite(https://sqlitebrowser.org/)手动附加数据库时,我没有收到任何错误
我试过检查所有文件的完整性,清理它们,从它们来的地方重新导入它们,都无济于事。
我仅限于Python 3.6.8和SQLite3 3.7.17,但我尝试过SQLite3 3.32.2,它也失败了。

xzv2uavs

xzv2uavs1#

我最终设法解决了这个问题,方法是遵循https://stackoverflow.com/questions/5274202/sqlite3-database-or-disk-is-full-the-database-disk-image-is-malformed/5316540#5316540中的步骤: 

cd "${DATABASE_LOCATION}"
echo '.dump' | sqlite3 "${DB_NAME}" | sqlite3 "repaired_${DB_NAME}"
mv "${DB_NAME}" "corrupt_${DB_NAME}"
mv "repaired_${DB_NAME}" "${DB_NAME}"

字符串
我仍然不知道是什么原因导致的错误摆在首位,但我已经花了足够的时间在这个问题上,所以我只是去与这个时间。

相关问题