[development] SQLite and Drupal 7

Larry Garfield larry at garfieldtech.com
Tue Feb 3 04:39:10 UTC 2009


On Monday 02 February 2009 10:14:02 pm Karoly Negyesi wrote:

> Questions are
>
> 1) Are we OK with making Drupal rely on SQLite for every request?

No.

> 2) Do we want "deploy your SQLite table and be done"?

I don't get what this means exactly, so I will say no. :-)

> 3) Do we want table versions?

Seems like a lot of extra tracking we don't want to have to deal with.

> 4) Should I just shut up and go back into my corner?

Of course not. :-P

For those playing our home game, the approach that I have been envisioning 
here has been to, as chx alludes to above, introduce a "clone table" operation 
within the DB layer.  The implementation shouldn't be overly complex; it's 
just a select, multi-insert, delete, execute multi-insert.  (Give or take some 
performance tuning.)  The race condition window would be quite small.

Then on certain operations, particularly things like menu rebuild or registry 
rebuild, after the main DB table is rebuilt we check if there is a "system" 
target defined and if so, run the clone table operation from the "default" 
target to the "system" target.  (Probably that would be checked within the 
clone method on the database layer itself, which internally becomes a no-op if 
the target is not defined.)  The "system" target then *need not be SQLite*.  It 
could be any supported database, on whatever system.  Optimize your site as 
needed.

We then set queries that rely just on those tables to use the the "system" 
target.  If it's defined, it gets used.  If not, the default database still has 
all of the data so the query falls back to that and everything keeps working.

-- 
Larry Garfield
larry at garfieldtech.com


More information about the development mailing list