Issue 1:
Migrated issue, originally created by Michael Bayer (@zzzeek)

When a pool can't connect to the DB, Python 3 does this:

#!

Traceback (most recent call last):
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/pool.py", line 1122, in _do_get
return self._pool.get(wait, self._timeout)
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/util/queue.py", line 145, in get
raise Empty
sqlalchemy.util.queue.Empty
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/engine/base.py", line 2147, in _wrap_pool_connect
return fn()
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/pool.py", line 328, in unique_connection
return _ConnectionFairy._checkout(self)
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/pool.py", line 766, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/pool.py", line 516, in checkout
rec = pool._do_get()
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/pool.py", line 1138, in _do_get
self._dec_overflow()
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
compat.reraise(exc_type, exc_value, exc_tb)
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/util/compat.py", line 187, in reraise
raise value
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/pool.py", line 1135, in _do_get
return self._create_connection()
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/pool.py", line 333, in _create_connection
return _ConnectionRecord(self)
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/pool.py", line 461, in __init__
self.__connect(first_connect_check=True)
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/pool.py", line 651, in __connect
connection = pool._invoke_creator(self)
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/engine/strategies.py", line 105, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/local/lib64/python3.5/site-packages/sqlalchemy/engine/default.py", line 393, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/usr/local/lib64/python3.5/site-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/usr/local/lib64/python3.5/site-packages/MySQLdb/connections.py", line 191, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on 'dbhost_obviously' (4)")

this confuses everyone. move the handling outside of Empty.

Issue 2:
Migrated issue, originally created by Anonymous

The code looks like this (skipping a log of details):

class visit_dim_category(object):

pass

...

class schema

...

#somewhere in class schema:

self.visit_dim_category = Table( "visit_dim_category", self.metadata,

Column("id",Integer, primary_key=True)

,Column("affiliate", Integer, ForeignKey("affiliate.id"))

,Column("product", Integer, ForeignKey("product.id"))

)

Index("visit_dim_category_idx1",self.visit_dim_category.c.affiliate, self.visit_dim_category.c.product, unique=True)

...

visit_dim_category.mapper = mapper(visit_dim_category, self.visit_dim_category)

#creating test db

db = create_engine(conf.connection())

schema = schema(db)

schema.metadata.drop_all()

schema.metadata.create_all()

it works fine in 0.2.7 and 0.2.8 but after updrade to 0.3 this code gives the following errors:

[04:49 ]cff@joy:~/work/stats3/server/test# ./test_db.py

create test schema...

mysql://root:root@localhost/stat3

Traceback (most recent call last):

File "./test_db.py", line 15, in ?

schema.metadata.create_all()

File "build/bdist.linux-i686/egg/sqlalchemy/schema.py", line 862, in

create_all

File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line

413, in create

File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line

437, in _run_visitor

File "build/bdist.linux-i686/egg/sqlalchemy/schema.py", line 882, in

accept_schema_visitor

File "build/bdist.linux-i686/egg/sqlalchemy/ansisql.py", line 637,

in visit_metadata

File "build/bdist.linux-i686/egg/sqlalchemy/schema.py", line 268, in

accept_schema_visitor

File "build/bdist.linux-i686/egg/sqlalchemy/ansisql.py", line 671,

in visit_table

File "build/bdist.linux-i686/egg/sqlalchemy/schema.py", line 819, in

accept_schema_visitor

File "build/bdist.linux-i686/egg/sqlalchemy/ansisql.py", line 749,

in visit_index

File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line

763, in execute

File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line

365, in proxy

File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line

329, in _execute_raw

File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line

348, in _execute

sqlalchemy.exceptions.SQLError: (OperationalError) (1061, "Duplicate

key name 'visit_dim_category_idx1'") 'CREATE UNIQUE INDEX

visit_dim_category_idx1 ON visit_dim_category (affiliate, product)' ()