I’ve settled on using SQLite as the database for my blog/mini-CMS. The blog is going to be running complex queries over all the data on a regular basis, and SQLite seems up to the task.
Other bonuses for SQLite include:
Since it only impacts the code at a few points, going with SQLite is a safe decision. If it turns out that SQLite isn’t up to the task it will be simple to replace it with another RDBMS—or even something else.
Comments
Even w/ SQLite, i use SQLObject. The only thing that hurt me w/ SQLite, is that i can't access to the DB while some one else (another thread for example) use it.
Yes, that is indeed a limitation. However, if you define a timeout that is big enough, the processes will wait untill the database is released again. Just be aware that the timeout value is in milliseconds.
According to the pysqlite documentation the timeout is in secords:
timeout: A timeout value in seconds, i. e. timeout=1.5. An SQLite database can be locked by a different connection being in an transaction. The timeout value means how long to wait for the lock to be released. If after /timeout/ seconds the lock is still not released, a DatabaseError will be thrown.