Я пытаюсь выбрать все записи из базы данных sqlite, имеющейся у меня с sqlalchemy, перебрать каждую из них и обновить ее. Я делаю это, потому что мне нужно переформатировать запись в моем столбце имени.
Вот код, который я использую для простого теста:
def loadDb(name):
sqlite3.connect(name)
engine = create_engine('sqlite:///'+dbPath(), echo=False)
metadata = MetaData(bind=engine)
return metadata
db = database("dealers.db")
metadata = db.loadDb()
dealers = Table('dealers', metadata, autoload=True)
dealer = dealers.select().order_by(asc(dealers.c.id)).execute()
for d in dealer:
u = dealers.update(dealers.c.id==d.id)
u.execute(name="hi")
break
Я получаю ошибку:
sqlalchemy.exc.OperationalError: (OperationalError) database table is locked u'UPDATE dealers SET name=? WHERE dealers.id = ?' ('hi', 1)
Я очень плохо знаком с sqlalchemy и не уверен, что означает эта ошибка или как ее исправить. Похоже, это должно быть очень простой задачей, поэтому я знаю, что делаю что-то не так.