How do I connect to Postgresql using SSL from SqlAchemy+pg8000?

sorin picture sorin · Aug 2, 2014 · Viewed 15.2k times · Source

Connecting to postgres via pg8000 from SqlAlchemy worked fine until I enabled SSL on postgres.

db = create_engine('postgresql+pg8000://user:pass@hostname/dbname', echo=True).connect()

Now it seems to fail with:

File "/Library/Python/2.7/site-packages/pg8000/core.py", line 872, in __init__
raise InterfaceError("communication error", exc_info()[1])
sqlalchemy.exc.InterfaceError: (InterfaceError) ('communication error', error(61, 'Connection refused')) None None

Answer

Evgeny Prokurat picture Evgeny Prokurat · Aug 2, 2014

probably you need to add connect_args dict:

db = create_engine('postgresql+pg8000://user:pass@hostname/dbname', connect_args={'sslmode':'require'}, echo=True).connect()