【问题标题】:Laravel deploy fails because migrateLaravel 部署失败,因为迁移
【发布时间】:2018-04-05 10:37:47
【问题描述】:

这是我的部署脚本的一部分,不幸的是失败了:

image: php:7-fpm

pipelines:
  branches:  # Pipelines that run automatically on a commit to a branch
    staging:
      - step:
          script:
            - apt-get update && apt-get install -y unzip python-dev git
            - apt-get install -qy git curl libmcrypt-dev mysql-client
            - docker-php-ext-install mcrypt && docker-php-ext-install pdo_mysql
            - ./install-composer.sh
            - composer install
            - export APP_ENV=QA
            - export S3_ACCESS_KEY_ID=AAAAA
            - export S3_BUCKET_ASSETS=AAAAA
            - export S3_DEFAULT_CDN_BASE=AAAAA
            - export S3_REGION=eu-west-1
            - export S3_SECRET_ACCESS_KEY=AAAAA
            - curl -O https://bootstrap.pypa.io/get-pip.py
            - python get-pip.py
            - pip install awsebcli --upgrade
            - eb init this-data -r eu-central-1 -p PHP
            - eb setenv APP_ENV=QA JS_PATH=AAAA IMAGES_PATH=AAAAA FONTS_PATH=AAAA                - eb setenv SES_KEY=AAAAA
            - eb printenv
            - export CACHE_DRIVER=redis
            - export SESSION_DRIVER=redis
            - export DB_CONNECTION=mysql
            - php artisan migrate
            - php artisan serve
            - eb deploy this-staging-env
          services:
            - mysql

definitions:
      services:
              mysql:
                image: mysql
                environment:
                  MYSQL_DATABASE: 'thisdb'
                  MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
                  MYSQL_USER: 'thisuser'
                  MYSQL_PASSWORD: 'thispass'
                  MYSQL_HOST: 'rdsInstance'

出现的消息是:

php artisan migrate

Illuminate\Database\QueryException : 找不到驱动程序 (SQL: select * from information_schema.tables where table_schema = forge and table_name = migrations) 在 /opt/atlassian/pipelines/agent/build/vendor/laravel/framework/src/Illuminate/

【问题讨论】:

  • 确保您的数据库详细信息正确,并且您使用的环境正确的 mysql 端口,似乎无法连接到数据库。
  • 这是迁移失败的唯一原因吗?在这种情况下,我希望得到更有意义的失败消息。
  • 其实我可能记错了,看看这个(显然你不会使用 sqlite,但它可能会对你的问题有所启发)laracasts.com/discuss/channels/laravel/…
  • 你可能是正确的,因为我也看到了Exception trace: PDOException::("could not find driver") /opt/atlassian/pipelines/agent/build/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php : 68 2 PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=forge", "forge", "", [])
  • @thitami 我不确定这些软件包是否真的包含 php7.0-pdophp7.0-mysql - 值得尝试专门安装它们以获得适用于 laravel 的工作数据库驱动程序。抱歉,我无法提供更多帮助。

标签: php laravel bitbucket bitbucket-pipelines


【解决方案1】:

我的解决方案是在 .ebextensions/init.config 中添加它:

container_commands:
    01initdb:
        command: "php artisan migrate"

这意味着迁移命令在部署之后运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-06
    • 2016-02-16
    • 2020-10-08
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多