Lauren LaGarde wrote:
Hi all,
I need a little help. I've been getting the "Database is locked" error quite a bit, and so I've decided to upgrade SQLite and PySqlite to try and reduce the frequency of the errors. I'm running Trac .10dev, but I don't know what revision, or how to find out what revision. :) I'm also currently running the following: SQLite v. 3.2.1, python v. 2.4.2, PySqlite v. 2.0.3, and mod_python v. 3.1.3 on Ubuntu Linux 5.10. So according to what I've read so far, Trac works best with SQLite 3.2.8 or better, and also works well with PySqlite 2.1.3. The latest stable version of SQLite is 3.3.4, which requires PySqlite 2.1.3. And according to some of the tickets regarding the "database is locked" error, they recommend compiling SQLite using the --enable-threadsafe option for multithreaded/mod_python environments.

Correct.

However, according to ticket #2196, Trac doesn't work with threadsafe SQLite on Linux. A patch was issued with that ticket, but it modifies the db.py file, a file that exists in Trac 0.9.4, but not in 0.10dev.

The fix is still there in 0.10dev, don't worry!

So being a newbie, I decided to just go for the regular non-thread-safe SQLite and PySqlite upgrades, and see if it worked. So I downloaded and installed SQLite 3.3.4, then installed PySqlite 2.1.3. Trac gave back a 500 error. Since it's a database upgrade, I figured I should probably run trac-admin upgrade, which responded that the database file was encrypted or not a database file... or something like that.... I don't remember the exact error, but it was the same error you get when you've upgraded from SQLite 2.x to 3.x but haven't done the file dump. But I was moving from 3.x to 3.x, so it shouldn't have been a problem. And using SQLite on the same database file on the command line works fine. Also, after installing SQLite 3.3.4, Trac continues to work, but after installing PySqlite, it's broken, so I'm assuming it's PySqlite that's the issue. So what am I missing or what am I doing wrong? Do I have to install PySqlite first, then SQLite? Do I have to install SQLite, then PySqlite, then rebuild and reinstall Trac completely? Is there some other trac-admin command I should be using? Is there a configuration value I have to change? Any help would be appreciated.

You should first install SQLite 3.3.4, then build PySqlite 2.1.3.
For that, you should edit the setup.cfg file in the distribution of
pysqlite to point to the include and lib directory of sqlite and then
"python setup.py install" should work.
Then, you should verify that you're really using this pysqlite and not
an older one (I suspect that your DB error was due to the fact that
an older pysqlite binding was used, one that was certainly linked to
some 2.x libsqlite instead of the 3.x libsqlite3).

-- Christian
_______________________________________________
Trac mailing list
[email protected]
http://lists.edgewall.com/mailman/listinfo/trac

Reply via email to