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

使用Serverless Bref CLI执行Laravel migrate命令返回状态码1异常

Laravel+Bref数据库迁移报错(非零状态码1)排查与解决方法

核心问题分析

执行serverless bref:cli --args="migrate --force"返回非零状态码1,说明迁移命令本身执行失败,但当前堆栈跟踪未提供具体错误原因,需逐步排查定位。

排查与解决步骤

1. 获取详细迁移日志

当前日志仅显示命令退出状态,需开启 verbose 模式获取具体错误:

serverless bref:cli --args="migrate --force -vvv"

该命令会输出Laravel迁移的详细错误信息,比如数据库连接失败、迁移文件语法错误、权限不足等关键线索。

2. 验证VPC网络连通性

  • Lambda安全组出站规则:确保允许访问RDS的5432端口,可临时添加出站规则允许所有TCP流量(测试用,后续按需收紧)。
  • RDS安全组入站规则:添加Lambda所在安全组作为源,开放5432端口,允许Lambda发起数据库连接请求。
  • 子网与NAT网关:若RDS部署在私有子网,Lambda所在子网必须是同一VPC的私有子网且配置NAT网关,否则无法访问RDS;若RDS为公开访问,Lambda子网需具备公网访问能力。

3. 核对数据库环境变量

  • 检查serverless.yml中DB相关变量(DB_HOST、DB_PORT、DB_DATABASE、DB_USERNAME、DB_PASSWORD)是否无拼写错误、多余空格。
  • 执行以下命令确认Lambda环境中实际加载的变量:
serverless bref:cli --args="env"

4. 检查数据库用户权限

确保数据库用户拥有迁移所需的完整权限,执行以下SQL语句(替换对应数据库和用户名):

GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_db_username'@'%';
FLUSH PRIVILEGES;

5. 验证迁移文件与环境兼容性

  • 本地执行php artisan migrate --force测试迁移文件是否正常,若本地报错则先修复迁移文件再重新部署。
  • 确认Bref环境已安装PostgreSQL扩展:
    在serverless.yml中添加对应层:
    layers:
      - ${bref:layer.php-82} # 替换为你的PHP版本
      - ${bref:layer.extra-php-extensions}
    
    在项目根目录php/conf.d/extensions.ini中添加:
    extension=pgsql.so
    extension=pdo_pgsql.so
    

6. 调整Lambda资源配置

若迁移任务较大,默认Lambda配置可能不足:
在serverless.yml的provider节点下添加:

memorySize: 256 # 可根据需求调高
timeout: 30 # 最大支持900秒,按需调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:37:09