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

时间:2016-06-14 02:31:31

标签: laravel migration laravel-5.2 artisan

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

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

  

[InvalidArgumentException]   数据库[mysql]未配置。

虽然database.php有正确的连接细节。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

.env

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

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

并编辑此来自

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

'default' => 'mysql',

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

并且不要忘记更改凭据

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')或类似内容更改为简单文本''