You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Alembic迁移表至默认postgres库而非指定test_db问题求助

解决Alembic迁移表到默认postgres库而非指定test_db的问题

问题根源在于你的数据库连接URL没有明确指定目标数据库名称,导致Alembic默认连接到了与用户名同名的postgres数据库,而非Docker Compose中预先创建的test_db。

修复步骤

1. 修改.env文件中的数据库连接URL

在.env文件里,给OPERATIONAL_DATABASE_URL添加数据库名称test_db:

OPERATIONAL_DATABASE_URL = postgresql+psycopg2://postgres:postgres@db:5432/test_db

PostgreSQL连接URL的标准格式为:postgresql://[user]:[password]@[host]:[port]/[dbname],缺失dbname时会默认使用当前用户名对应的数据库(这里就是postgres)。

2. 验证应用与迁移的一致性

你的main.py和alembic/env.py都读取这个环境变量,修改后两者都会连接到test_db,确保应用操作和数据库迁移的目标库一致。

3. 重新执行迁移操作

如果之前已经在postgres库中生成了迁移表,可根据实际情况清理旧数据后重新执行迁移:

# (可选)删除旧迁移版本文件
rm alembic/versions/*.py

# 生成新迁移版本
alembic revision --autogenerate -m "initial tables"

# 运行迁移
alembic upgrade head

额外说明

Docker Compose中的POSTGRES_DB=test_db仅在容器首次启动时创建该数据库,后续连接仍需在URL中明确指定,否则会默认连接到postgres库。

内容的提问来源于stack exchange,提问作者Boris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 10:37:45