如何通过SQLAlchemy URL设置PostgreSQL默认Schema并生成非默认Schema模型
解决sqlacodegen获取PostgreSQL非默认Schema模型的问题
核心解决方法:指定目标Schema或扫描全部Schema
sqlacodegen默认仅扫描PostgreSQL的public默认Schema,要获取其他Schema的模型,只需在命令中添加对应参数:
指定单个非默认Schema
在命令后添加--schema参数并指定目标Schema名称:sqlacodegen postgresql://{RDS_USERNAME}:{RDS_PASSWORD}@{RDS_HOSTNAME}:{RDS_PORT}/{RDS_DB_NAME} --schema your_target_schema指定多个非默认Schema
用逗号分隔多个Schema名称即可:sqlacodegen postgresql://{RDS_USERNAME}:{RDS_PASSWORD}@{RDS_HOSTNAME}:{RDS_PORT}/{RDS_DB_NAME} --schema schema_a,schema_b,schema_c扫描数据库中所有Schema
使用--all-schemas参数一次性获取所有Schema的模型:sqlacodegen postgresql://{RDS_USERNAME}:{RDS_PASSWORD}@{RDS_HOSTNAME}:{RDS_PORT}/{RDS_DB_NAME} --all-schemas
额外注意事项
- 你提供的原命令末尾多了一个多余的单引号,执行前请删除,避免语法错误。
- 生成的模型会自动关联对应Schema,比如非
publicSchema的表会在模型中通过__table_args__指定Schema属性,确保与数据库结构匹配。
内容的提问来源于stack exchange,提问作者runRyan
相关产品推荐
相关产品推荐

