如何使用SQLAlchemy为Aurora Serverless和DataAPI生成python数据库模型



我一直在想,是否有任何方法可以为通过DataAPI使用的Aurora Serverless(Postgresql(DB提供ORM功能(尤其是代码模型生成(?最终,我希望避免在Lambdas中使用原始sql字符串查询。

我尝试将sqlacodegen与sqlalchemy aurora数据api结合使用(它在sqlalchemi之上工作(,但我不断收到错误:

使用方言:

> 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(时指定该区域的方法是使用环境变量boto3文档的这一部分提到了所有变量及其用法。

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

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

最新更新