【发布时间】:2018-12-04 11:32:15
【问题描述】:
我需要将自定义参数传递给 SQLAlchemy 的 create_engine 函数,以便 SSL 授权我与 AWS RDS 的数据库连接。 here、here 和 here 建议我使用 SQLAlchemy 的 connect_args 来传递我的自定义关键字参数。我试过了:
engine = create_engine(os.environ['DB_URI'], connect_args={'ssla':'amazon-rds-ca-cert.pem'})
但是,我出现了以下 TypeError,这与其他发帖者所说的 connect_args 为他们修复的错误相同:
TypeError: 'ssla' is an invalid keyword argument for this function
看来我做得完全正确。我还尝试在连接字符串中传递关键字参数:
mysql://name:password@localhost/test?sslca=amazon-rds-ca-cert.pem
并更改关键字参数的名称以完全匹配sqlalchemy docs 中的示例:
db = create_engine('mysql://name:password@localhost/test', connect_args = {'argument2':'bar'})
但是,仍然没有运气。错误消息中似乎是MySQLdb抛出的错误,所以可能是那里的错误?
File "/Users/tobyweed/workspace/ftm/live-event-market/server/serverenv/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 411, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/Users/tobyweed/workspace/ftm/live-event-market/server/serverenv/lib/python2.7/site-packages/MySQLdb/__init__.py", line 86, in Connect
return Connection(*args, **kwargs)
File "/Users/tobyweed/workspace/ftm/live-event-market/server/serverenv/lib/python2.7/site-packages/MySQLdb/connections.py", line 204, in __init__
super(Connection, self).__init__(*args, **kwargs2)
TypeError: 'ssla' is an invalid keyword argument for this function
但是,我没有安装 MySQLdb,所以它必须是使用它的 SQLAlchemy。我有最新版本的 SQLAlchemy (1.2.8),所以不可能。
请帮忙!
【问题讨论】:
标签: python sqlalchemy mysql-python