【问题标题】:Laravel artisan migrate deployment productionLaravel artisan 迁移部署生产
【发布时间】:2017-02-21 18:07:04
【问题描述】:

在我的部署策略中,我想做以下事情:

  1. 从 git 获取代码
  2. 通过 composer 安装依赖项(开发要求也是如此)
  3. 运行测试(phpunit 等)
  4. 为生产安装依赖项(将删除开发要求)
  5. 邮编
  6. 复制到服务器
  7. 解压
  8. 将符号链接更改为当前版本(保留 2 个旧版本以防恢复)

此时我可以运行php artisan migrate 来更新数据库吗?

注意事项:

应用程序缓存文件被清除(实际上它们是空的,就像全新安装一样)。 迁移查询是否会检查架构以了解是否需要更新?

总而言之

我可以在生产环境中安全地运行php artisan migrate 而没有以前的应用程序缓存吗?

migrate 任务如何知道表的历史以及需要做什么?

【问题讨论】:

    标签: php laravel jenkins deployment laravel-5.3


    【解决方案1】:

    当你第一次运行迁移时,Laravel 会创建一个 migrations 表,帮助它知道你在什么时候进行迁移。

    我建议始终进行备份,无论如何,如果在将它们应用到生产中之前在本地测试它们,你可以毫无问题地更新你的表,最重要的是,你不要编辑旧的迁移,但而是添加要迁移的新表、编辑现有表的事件(添加/删除列)。

    PS:如果你使用 git,为什么需要符号链接?我只是标记一个工作版本。 如果您能够通过 ssh 访问您的托管服务器,即使是沙盒版本也只能访问您的站点文件夹,您可以直接使用 git 进行部署。避免因文件副本失败而导致任何问题的最佳方法。

    【讨论】:

    • 哦该死的,你是对的,谢谢你指出这一点。我目前正在从 zend 2 迁移并且没有设置迁移表。看了另一个项目,谢谢!
    • 我使用 symlink 是因为我有 3 个其他项目采用这种策略并希望保持一致性,再次感谢,愉快的编码:)
    • 祝你好运,保重 ;)
    猜你喜欢
    • 2013-10-28
    • 2018-04-06
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2019-05-24
    相关资源
    最近更新 更多