执行Alembic自动生成迁移命令时触发int类型转换错误
错误修复指南:Alembic执行自动迁移时触发ValueError
问题原因
你的alembic.ini中sqlalchemy.url的连接字符串格式完全不符合PostgreSQL规范,导致Alembic错误地将密码解析为端口号(要求整数类型),从而抛出ValueError: invalid literal for int() with base 10: 'postgres'。
PostgreSQL标准连接字符串格式为:postgresql://<用户名>:<密码>@<主机地址>:<端口>/<数据库名称>
而你当前的配置把主机端口和用户密码的位置完全颠倒了。
修复方法
修改Project/alembic.ini中的sqlalchemy.url配置项为正确格式:
sqlalchemy.url = postgresql://%(DB_USER)s:%(DB_PASS)s@%(DB_HOST)s:%(DB_PORT)s/%(DB_NAME)s
可选优化
为了提前验证端口的有效性,避免后续潜在问题,可以修改Project/config.py中的DB_PORT获取逻辑,确保其为整数类型:
DB_PORT = int(os.environ.get("DB_PORT"))
此外,请确认PostgreSQL服务处于运行状态,且使用的数据库用户拥有目标数据库的访问权限。
内容的提问来源于stack exchange,提问作者TIUVAIEV SERHII
相关产品推荐
相关产品推荐

