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