GitHub Actions中Alembic读取数据库连接串遇KeyError问题求助
解决GitHub Actions中Alembic无法读取数据库连接串的问题
问题原因
你在GitHub Actions步骤中通过env字段设置了DATABASE_URL环境变量,但Alembic的配置文件(alembic.ini)里是从本地.env文件读取该变量——而GitHub Actions的运行环境中并没有这个文件,所以会触发KeyError: 'DATABASE_URL'。
解决方案
有两种可行的解决方式,推荐第一种更简洁的方案:
方案1:直接读取系统环境变量
修改alembic.ini中的代码,放弃从.env文件读取,改用读取系统环境变量:
import os connection_string = os.environ.get("DATABASE_URL")
这样在本地开发时,你可以通过python-dotenv加载.env文件(自动将变量注入环境),在GitHub Actions中则直接读取步骤里设置的环境变量,两边都能正常工作。
方案2:在GitHub Actions中生成.env文件
如果坚持要保留从.env文件读取的逻辑,可以在执行迁移前先创建该文件并写入secrets:
- name: 创建.env文件 run: echo "DATABASE_URL=${{ secrets.DEV_DATABASE_URL }}" > .env - name: 执行Alembic迁移 run: alembic upgrade head
内容的提问来源于stack exchange,提问作者eboraks
相关产品推荐
相关产品推荐

