Laravel 使用 Lambda 迁移到 AWS RDS

Posted

技术标签:

【中文标题】Laravel 使用 Lambda 迁移到 AWS RDS【英文标题】:Laravel Migrate to AWS RDS using Lambda 【发布时间】:2021-11-26 19:42:17 【问题描述】:

我希望在AWS Lambda 上部署一个Laravel 应用程序。该应用需要PostgreSQL 数据库访问权限。

这个想法是使用 Bref 在 AWS Lambda 上进行部署。我手动创建了一个 RDS PostgreSQL 数据库并更新了入站规则并将连接参数添加到应用中的 .env 文件和 serverless.yml 模板中。

部署应用程序后,我收到错误SQLSTATE[42P01]: Undefined table。我相信问题是没有发生迁移。那么问题来了,如何从 Laravel/Lambda 迁移到 RDS?我应该使用工匠和 CLI 吗?或者有一种方法可以创建一种自动化的迁移方式?

谢谢

【问题讨论】:

【参考方案1】:

当您不为 Postgresql 进行自定义设置时,默认情况下 sql 查询应该是这样的

SELECT * FROM database_name.table_name 

有两个选项,或者您应该在所有 laravel 模型文件中指定表名,如下所示

protected $table = 'database_name.table';

或者您应该通过终端连接到 rds postgresql 并设置以下内容

SET search_path TO database_name,public;

postgresql schemas

【讨论】:

以上是关于Laravel 使用 Lambda 迁移到 AWS RDS的主要内容,如果未能解决你的问题,请参考以下文章

来玩 Serverless: 如何把 Express 应用迁移到 Amazon API 网关和 AWS Lambda 上

将 Laravel 迁移与 AWS Redshift 数据库一起使用

如何从 laravel 调用现有的 AWS Lambda 函数?

在rals中将rake任务迁移到Lambda

AWS cognito 用户迁移池触发器不适用于登录流程

将 AWS Glue 作业迁移到 EC2