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

如何通过Github Actions在Docker部署的MySQL上运行Prisma迁移

问题修复方案

你遇到的P1001连接错误是由两个核心配置缺失导致的,按以下步骤修正即可:

  • 补全MySQL服务健康检查命令
    你当前仅配置了健康检查的间隔、重试参数,未指定具体的检查逻辑,GitHub Action无法感知MySQL是否完成初始化,会提前执行后续数据库操作步骤,导致连接失败。需要在mysql服务的options字段中添加检查命令:
    options: >-
      --health-cmd "mysqladmin ping -u root -ppassword"
      --health-interval 10s
      --health-timeout 5s
      --health-retries 5
    
  • 修复MySQL镜像兼容性问题
    mysql:latest默认使用caching_sha2_password身份验证插件,多数版本的Prisma驱动不支持该插件,会导致连接失败。建议固定使用兼容的稳定版本,同时可选指定兼容的身份验证插件:
    mysql:
      image: mysql:8.0
      env:
        MYSQL_ROOT_PASSWORD: password
        MYSQL_DATABASE: db
        MYSQL_AUTHENTICATION_PLUGIN: mysql_native_password
      # 其余配置保持不变
    
  • 额外注意事项
    1. 作业运行在node:latest容器内时,service的ports配置是非必要的,可直接移除,不影响容器间网络通信
    2. CI环境下建议将npx prisma migrate dev替换为npx prisma migrate deploy,前者是开发环境专用命令,后者更符合CI自动化场景
    3. 如果你使用act本地测试工作流,需要额外添加参数指定网络模式,避免服务名解析失败:act --container-network bridge

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:15:04