加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 如何在AWS Elastic Beanstalk上执行Laravel Artisan迁移

发布时间:2020-12-14 19:46:49 所属栏目:大数据 来源:网络整理
导读:我有一个Laravel安装,并设置了三个具有自己相应配置目录的环境: 当地 分期 生产 我使用php artisan migrate:make create_users_table等,如here所述,以创建数据库迁移. 在我的本地环境中,我使用Vagrant和一个简单的MySQL服务器设置,并在staging生产我使用AW
我有一个Laravel安装,并设置了三个具有自己相应配置目录的环境:

>当地
>分期
>生产

我使用php artisan migrate:make create_users_table等,如here所述,以创建数据库迁移.

在我的本地环境中,我使用Vagrant和一个简单的MySQL服务器设置,并在staging&生产我使用AWS RDS.

要为登台environment配置数据库访问,我有一个app / config / staging / database.php文件,其设置如下:

...
"mysql" => array(
    "driver" => "mysql","host" => $_SERVER["RDS_HOSTNAME"],"database" => $_SERVER["RDS_DB_NAME"],"username" => $_SERVER["RDS_USERNAME"],"password" => $_SERVER["RDS_PASSWORD"],"charset" => "utf8","collaction" => "utf8_unicode_ci","prefix" => "",),...

我使用git使用git aws.push部署应用程序,如here所述.

问题是:如何在部署时在我的登台(以及后期制作)EBS服务器上运行迁移?

我通过在名为.ebextensions的项目根目录中创建一个新目录来解决它.在该目录中,我创建了一个脚本文件my-scripts.config:
.ebextensions/
    my-scripts.config
app/
artisan
bootstrap
...

当EBS部署时,文件my-scripts.config被执行,是一个YAML文件,如下所示:

container_commands:
    01-migration:
        command: "php /var/app/ondeck/artisan --env=staging migrate"
        leader_only: true

将目录和文件添加到git,commit,并运行git aws.push,它将进行迁移.

关于.ebextensions中的内容如何工作的解释可以在here找到.

路径/ var / app / ondeck是脚本运行时应用程序所在的位置,然后将其复制到/ var / app / current中.

工匠选项–env = staging对于告诉工匠应该运行什么环境非常有用,这样它就能从app / config / staging / database.php中找到正确的数据库设置.

如果您需要快速而又脏的方式来记录迁移命令失败的原因,您可能需要尝试类似“php / var / app / ondeck / artisan –env = staging migrate> /tmp/artisan-migrate.log”的内容.这样您就可以登录ec2实例并查看日志.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读