问题描述
我来这里是为了公开我发现使用 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)。
参考: