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

问题描述 投票:0回答:1

为了将数据收集/合并到单个主数据库(名为

output_db
)中,我尝试附加多个输入数据库(一次一个),但有些数据库随机无法附加,并显示“数据库错误:数据库磁盘映像格式错误” :

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

使用 SQLite 的 DB Browser 手动附加数据库时,我没有收到任何错误 (https://sqlitebrowser.org/)

我尝试过检查所有文件的完整性,清理它们,从原来的位置重新导入它们,但无济于事。

我仅限于 Python 3.6.8 和 SQLite3 3.7.17,但我尝试过 SQLite3 3.32.2,但同样失败。

python sqlite
1个回答
0
投票

我最终按照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

我仍然不知道是什么原因导致了错误,但我已经在这个问题上花费了足够的时间,所以我暂时就解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.