After seeing the announcement for Amazon Redshift yesterday I thought I would see how hard it's going to be to connect from psycopyg/SqlAlchemy. So far I'm not having any luck. Below is what I'm trying and the error that follows:
Traceback (most recent call last):
File "redshift.py", line 14, in <module>
conn = engine.connect()
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2472, in connect
return self._connection_cls(self, **kwargs)
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 878, in __init__
self.__connection = connection or engine.raw_connection()
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2558, in raw_connection
return self.pool.unique_connection()
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/pool.py", line 183, in unique_connection
return _ConnectionFairy(self).checkout()
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/pool.py", line 387, in __init__
rec = self._connection_record = pool._do_get()
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/pool.py", line 802, in _do_get
return self._create_connection()
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/pool.py", line 188, in _create_connection
return _ConnectionRecord(self)
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/pool.py", line 273, in __init__
pool.dispatch.first_connect.exec_once(self.connection, self)
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/event.py", line 282, in exec_once
self(*args, **kw)
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/event.py", line 291, in __call__
fn(*args, **kw)
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 167, in first_connect
dialect.initialize(c)
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/dialects/postgresql/base.py", line 1000, in initialize
super(PGDialect, self).initialize(connection)
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 171, in initialize
self._get_server_version_info(connection)
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/dialects/postgresql/base.py", line 1184, in _get_server_version_info
v = connection.execute("select version()").scalar()
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1449, in execute
params)
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1628, in _execute_text
statement, parameters
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1698, in _execute_context
context)
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1685, in _execute_context
context)
File "/Users/matt/envs/health/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 334, in do_execute_no_params
cursor.execute(statement)
sqlalchemy.exc.ProgrammingError: (ProgrammingError) permission denied to set parameter "transaction_isolation" to "serializable"
'select version()' {}