使用 Google Cloud Run 和 Google Cloud SQL 运行 Laravel 迁移的正确方法是什么

问题描述

我来这里是为了公开我发现使用 Google Cloud sql 和 Laravel 运行迁移到 Google Cloud Run 项目的具体方法,这很简单,我只是从我的 .env laravel 连接到 Cloud sql(使用Cloud sql 代理)并从我的本地控制台使用经典命令 PHP artisan migrate 运行迁移。

我从未找到另一种运行迁移的方法,因为我目前正在制作它们,实际上我从未找到有关它的更多信息,所以这就是问题:

除了在本地环境中运行 Laravel 迁移到 Google Cloud Run 之外,还有其他简单而安全的方法吗?

解决方法

如果使用 HTTP Post 请求调用,您可以添加控制器函数来执行 Artisan 命令。

例如,将此控制器函数用于您应用上的 /migrate 路径(在您的路由文件中注册到 Route::post)。

public function migrate(Request $request)
{
    Artisan::call('migrate');
}

您可以通过向 migrate 发送 HTTP 请求来执行 Artisan /migrate 命令

curl -request POST \
     --header "Content-Type: application/json" \
     https://you-cloud-run-app-url.run.app/migrate

但此解决方案的缺点是安全性。您必须制作自己的中间件以保护此操作免受不允许的请求(或使用 OAuth2 protocol)。

参考: