首页 > 解决方案 > 仅在一台服务器上运行 Laravel 迁移(例如 ->onOneServer() 用于计划的 cronjobs)

问题描述

我同时在多台服务器上运行 Laravel 应用程序。它在 Docker 映像中运行。每次我部署一些代码更改时,Docker 映像都会重新启动,然后它运行after_deployment.sh包含php artisan migrate --force. 该脚本由我的所有服务器执行,而不仅仅是一个。

所有服务器都使用相同的中央数据库。因此,如果两台服务器尝试php artisan migrate大致同时运行,只有第一台服务器成功,另一台在中间某处失败并记录错误。这不是很好。

仅在一台服务器上运行 cronjobs(Laravel 调度程序)也有类似的问题,但现在由于 Laravel 提供了->onOneServer();调度作业的方法,这个问题得到了解决。

仅在一台服务器上运行迁移是否有类似的东西?像php artisan migrate --force --on-one-server什么?

标签: laravellaravel-migrations

解决方案


推荐阅读