繁体   English   中英

如何使用 SQLAlchemy 为 Aurora Serverless 和 DataAPI 生成 python db model?

[英]How to generate python db model with SQLAlchemy for Aurora Serverless and DataAPI?

我一直在试图弄清楚是否有任何方法可以为通过 DataAPI 使用的 Aurora Serverless (Postgresql) DB 提供 ORM 功能(尤其是代码 model 生成)? 最终,我想避免在我们的 Lambda 中使用原始 sql 字符串查询。

我尝试将sqlacodegen与 sqlalchemy -aurora-data-api (在sqlalchemy之上工作)结合使用,但我不断收到错误消息:

用方言:

> sqlacodegen postgresql+auroradataapi://username:password@db-host/db-name

botocore.exceptions.NoRegionError:您必须指定一个区域。

没有方言:

> sqlacodegen postgresql://username:password@db-host/db-name

sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)无法连接到服务器:连接超时(0x0000274C/10060)

前者似乎暗示必须将参数传递给调用,但 sqlacodegen 不接受任何 kwargs afaik。 后者只是无法连接,而psycopg2告诉我它只是没有使用正确的方言。

这两个调用都不正确。 这是调用它的正确方法:

> sqlacodegen postgresql+auroradataapi://:@/db-name

这里主要有两点:

  1. 提示You must specify a region的错误是正确的。 使用命令行脚本(例如sqlacodegen )时指定该区域的方法是使用Environment Variables boto3文档的这一部分提到了所有变量及其用法。

  2. 用于 DataAPI 的特定库( sqlalchemy-aurora-data-api )在他们的示例中使用了这种格式,尽管与sqlacodegen混合使用,它仍然可以正常工作。

对于这个问题, AWS_DEFAULT_REGION变量设置为适当的值(即us-east-1 )以及所有必要的 AWS 凭证(如AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM