在使用Python2.6.6打开.svn/wc.db时出现“格式不正确的数据库模式”

1 投票
1 回答
1455 浏览
提问于 2025-04-18 07:54

我正在尝试用Python获取我的工作副本(使用的是Subversion)的版本号。我的Python版本是2.6.6,下面是我的代码:

import sqlite3

conn = sqlite3.connect("wc.db")
cursor = conn.cursor()
record = cursor.execute("SELECT revision FROM NODES LIMIT 1")
print record

运行后,我得到了:

traceback (most recent call last):
  File "get_revision.py", line 5, in <module>
  record = cursor.execute("SELECT revision FROM NODES LIMIT 1")
sqlite3.DatabaseError: malformed database schema (nodes_update_checksum_trigger) - near "OLD": syntax error

这是不是意味着Python 2.6.6中的sqlite3版本太旧了?我查了一下:

Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> sqlite3.version
'2.4.1'
>>>

1 个回答

1

是的,我觉得你说得对:这意味着你用来读取数据库文件的SQLite3版本比写这个数据库文件的版本要旧。

我在用Python读取Chrome/Chromium的“本地存储”时也遇到过同样的问题。我的Python版本(3.5.2)可以读取Chrome或Chromium版本55或更早写的本地存储文件,但如果是Chromium版本57写的,就读不了,出现的错误和你遇到的一样: “数据库结构格式错误”。

撰写回答