簡體   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