AWS 上的作曲家配置文件不断失败迁移



有人可以看看下面的01composer.config文件,看看migrateSeed命令是否有问题,因为弹性豆茎给出了错误Application deployment failed at 2016-06-10T15:53:58Z with exit status 1 and error: container_command 02-migrateSeed in .ebextensions/01composer.config failed.

commands:
   composer_update:
      command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update
option_settings:
   - namespace: aws:elasticbeanstalk:application:environment
     option_name: COMPOSER_HOME
     value: /root
container_commands:
  01-install_dependencies:
       command: "php /usr/bin/composer.phar install"
       cwd: "/var/app/ondeck"
  02-migrateSeed:
           command: "php artisan migrate --force"
           cwd: "/var/app/ondeck"
  03-seed:
           command: "php artisan db:seed --force"
           cwd: "/var/app/ondeck"
  04-optimize:
      command: "php /usr/bin/composer.phar dump-autoload --optimize"
      cwd: "/var/app/ondeck"

将脚本更改为:

02-migrateSeed:
    command: "php artisan migrate --force"
    cwd: "/var/app/ondeck"
    leader_only: true
03-seed:
    command: "php artisan db:seed --force"
    cwd: "/var/app/ondeck"
    leader_only: true

我的猜测是,数据被第一个实例(领导者)正确设定种子,然后另一个实例试图重新设定相同的数据种子,从而导致 MySQL 约束违规异常。

设置为 true 时,领导者仅标志将确保仅在第一个实例上运行这些命令。

编辑:

查看此其他答案以获取有关leader_only

的更多信息

AWS Elastic Beanstalk - 为什么要将 leader_only 用于命令?

最新更新