I've found an issue where doctrine will use the wrong connection for tables under certain conditions.
In a template, I'm doing a $sf_user->hasCredential() - which is causing this to be run in sfGuardSecurityUser,
When this execute, the calls find themselves to Doctrine_Manager::getConnectionForComponent($componentName)
This method calls Doctrine_Core::modelsAutoload($componentName);, which fails to load the class, and returns false (no checking is done to see if it should return true).
As this fails to include the sfGuardUser classes wher the component binding goes on, the getTAble call will use the default connection, then create the table fails to use the correct connection
the binding is done after the call to getConectionForComponent, as it's getTable that will ultimately cause the autoloader to pull in the table classes.