gpt4 book ai didi

laravel - php artisan 在 Azure 上迁移(在 BitBucket 管道中)

转载 作者:行者123 更新时间:2023-12-04 12:38:56 24 4
gpt4 key购买 nike

我在 BitBucket 中设置了一个管道,以自动将项目的主分支部署到 Azure Web App 实例。

应用程序部署文件并按预期运行 composer update(尽管它确实警告它正在以 root 身份运行),但 php artisan migrate --force 返回:

Illuminate\Database\QueryException : SQLSTATE[HY000] [1045] Access denied for user 'forge'@'127.0.0.1' (using password: NO) (SQL: select * from information_schema.tables where table_schema = forge and table_name = migrations)

我已经创建了 .env 文件,当我从 shell 中运行 php artisan migrate 时,它会成功运行并创建表。

由于“forge”是database.php中的默认用户,我认为当从部署脚本触发命令时,.env不会被加载。

我是否错过了导致此问题的明显原因,或者我应该以某种方式将其设置为不以 root 身份运行?我可以替换 database.php 中的数据库详细信息,但我觉得这是错误的做法。

编辑

.env内容(某些数据替换为********):

APP_NAME=Laravel
APP_ENV=local
APP_KEY=********
APP_DEBUG=true
APP_URL=********

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=********
DB_DATABASE=********
DB_USERNAME=********
DB_PASSWORD=********

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

编辑2

我意识到我尚未发布我的 bitbucket-pipelines.yml 文件:

image: php:7.2-fpm

pipelines:
branches:
master:
- step:
script:
- apt-get update && apt-get install -qy git curl libmcrypt-dev mysql-client && apt-get install -qy unzip git
- yes | pecl install mcrypt-1.0.1
- docker-php-ext-install pdo_mysql
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- composer update
- php artisan migrate --force
- php artisan serve --port=80 &
- sleep 5
- curl -vk http://localhost:80
deployment: staging
services:
- mysql

definitions:
services:
mysql:
image: mysql:5.7
environment:
MYSQL_DATABASE: '******'
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
MYSQL_USER: '******'
MYSQL_PASSWORD: '******'
MYSQL_PORT: '******'

我还有一个 .env.pipelines 文件:

APP_ENV=local
APP_KEY=******
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=******
DB_USERNAME=******
DB_PASSWORD=******

最佳答案

这个错误主要来自于.env文件的修改:

Illuminate\Database\QueryException : SQLSTATE[HY000] [1045] Access denied for user 'forge'@'127.0.0.1' (using password: NO) (SQL: select * from information_schema.tables where table_schema = forge and table_name = migrations)

每当我们更改 .env 文件中的 DB_DATABASEDB_USERNAMEDB_PASSWORD 时,我们都需要清除缓存。

完成.env编辑后,必须清除缓存:php artisan config:cache

注意:如果数据库没有设置密码,请清除DB_PASSWORD空格也必须删除(以前我也遇到过这个问题,将空格视为密码)

关于laravel - php artisan 在 Azure 上迁移(在 BitBucket 管道中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54581348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com