Additional information:

I added a print to the front end of DAL.__init__ and was surprised to find 
driver_args was set to {'check_same_thread': False} but I did not set it in 
my db = DAL() class constructor call.

So here is the issue. I start up the development environment on Linux with a 
terminal command "python web2py.py" sitting in the correct web2py directory. 
Because I have Tcl/TK installed on the system it comes up, solicits an admin 
password and then I start the server.

This in turn brings up a browser window running the welcome application. The 
welcome application as written uses SQLLite as the database and since it is 
default installed in Python >= 2.5 I have the driver and a connection 
succeeds. The SQLLite adapter does use this driver_args parameter and if it 
is not set forces it to the value I am seeing.

Somehow driver_args gets stored globally and becomes the default for all 
other adapter calls to __init__ on any other driver as well.

To test this theory I commented out the db=DAL(...) line in db.py in the 
welcome application and restarted the server. This caused the welcome app to 
crash during the TclTk solicited start of the welcome app when the browser 
is opened but at least the DAL did not get initialized using the SQLLite 
database.

Now I am able to run my own application and the driver_args = {} which would 
be correct for the PostgreSQL adapter.

Hope that helps isolate it a little better.

Ron


Reply via email to