gpt4 book ai didi

python - SQLAlchemy 自定义关键字参数失败并出现 TypeError : 'argument' is is an invalid keyword argument for this function

转载 作者:行者123 更新时间:2023-12-01 01:48:01 30 4
gpt4 key购买 nike

我需要将自定义参数传递给 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),所以不可能是这样。

请帮忙!

最佳答案

参数正在上游传递,即传递到您的 mysql dbapi 模块 - sqlalchemy 所做的就是从所选模块调用 connect 函数。

正如您在这里看到的 https://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html sslca 不是 connect 函数的有效参数 - 我认为正确的参数名称应该是 ssl_ca

换句话说,你必须找出如何直接使用 python-mysql 做你想做的事情,而不使用 sqlalchemy - sqlalchemy 不是这里的罪魁祸首

你也说

However, I don't have MySQLdb installed, so it must be SQLAlchemy which is using it.

SQLAlchemy 不是数据库,它不连接到任何东西。它只是一个层,你必须提供一个数据库模块供它用来连接数据库。

关于python - SQLAlchemy 自定义关键字参数失败并出现 TypeError : 'argument' is is an invalid keyword argument for this function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51031123/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com