如何使 artisan migrate 命令使用 database.php 而不是 .env

How to make artisan migrate command use database.php instead of .env

默认情况下 Laravel 的 artisan migrate 命令使用 .env 文件从中加载数据库配置,但是如何让它查看 database.php 而不是 .env 文件来加载数据库连接信息?

如果我从 .env 文件中删除数据库凭据,它会出现以下错误:

[InvalidArgumentException] Database [mysql] not configured.

尽管 database.php 具有正确的连接详细信息。

您可以使用--database指定要使用的数据库连接:

php artisan migrate --database=pgsql
php artisan migrate --database=mysql
php artisan migrate --database=sqlite

从您的 .env

中删除它
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=new
DB_USERNAME=root
DB_PASSWORD=''

转到配置文件夹中的 database.php

并编辑此 From

'default' => env('DB_CONNECTION', 'mysql'),

'default' => 'mysql',

如果您正在使用其他数据库(例如 sqlite 或 sqlserv,请更改默认值)

AND 不要忘记更改 凭据

mysql 例子:

'mysql' => [
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'database',
            'username'  => 'username',
            'password'  => 'password',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
            'engine'    => null,
        ],

简而言之: 您需要从 .env 文件中删除与数据库相关的变量,并更改 env('DB_HOST', 'localhost') 或 [=44] 中的任何类似内容=] 到 ''

之间的简单文本