Laravel 在生产服务器上迁移
Posted
技术标签:
【中文标题】Laravel 在生产服务器上迁移【英文标题】:Laravel migrate on production server 【发布时间】:2018-03-23 16:37:10 【问题描述】:我正在使用 Laravel,作为部署例程的一部分,我有命令
RUN php artisan migrate
由于我在生产中,我收到错误
生产中的应用,命令已取消!
修复很简单:RUN php rankbot/artisan migrate --force
但我觉得这不是正确的方法吗?确保数据库架构始终保持最新的最佳方式是什么?
【问题讨论】:
--force
是正确的做法。 --force
标志可防止您在生产环境中意外运行迁移。就像你有 2 个 ssh 终端打开什么的。
如果使用 --force 进行迁移需要很长时间,并且在连接到服务器时互联网连接中断...会发生什么?可以用nohup吗? (nohup php artisan migrate --force)
【参考方案1】:
这是正确的方法。
当您在生产环境中运行迁移时,最好确定它将对您的数据库执行什么操作,因为某些操作可能无法回滚。
确认提示可以让你停下来三思而后行,以免造成伤害。
某些迁移操作具有破坏性,这意味着它们可能会导致 你会丢失数据。为了保护您不运行这些命令 针对您的生产数据库,系统将提示您输入 执行命令前的确认。强制命令 要在没有提示的情况下运行,请使用 --force 标志
https://laravel.com/docs/5.5/migrations#running-migrations
【讨论】:
必须考虑每种情况。如果您有 100 台服务器要更新,手动确认没有帮助。所以--force
是自动化部署的方式以上是关于Laravel 在生产服务器上迁移的主要内容,如果未能解决你的问题,请参考以下文章