1. ホーム
  2. python

[解決済み] Python SQLite: データベースがロックされています

2022-02-18 09:04:21

質問

このコードを試しています。

import sqlite

connection = sqlite.connect('cache.db')
cur = connection.cursor()
cur.execute('''create table item
  (id integer primary key, itemno text unique,
        scancode text, descr text, price real)''')

connection.commit()
cur.close()

この例外をキャッチしています。

Traceback (most recent call last):
  File "cache_storage.py", line 7, in <module>
    scancode text, descr text, price real)''')
  File "/usr/lib/python2.6/dist-packages/sqlite/main.py", line 237, in execute
    self.con._begin()
  File "/usr/lib/python2.6/dist-packages/sqlite/main.py", line 503, in _begin
    self.db.execute("BEGIN")
_sqlite.OperationalError: database is locked

cache.dbのパーミッションはOKです。何か思い当たることはありますか?

解決方法を教えてください。

dbファイルへのパスが実はsambaにマウントされたdirであったために問題が発生したことが判明しました。それを移動させたらうまくいくようになりました。