Laravel 5.3只读取.env文件中的db conf而不是config / database.php

时间:2016-09-21 16:54:40

标签: php database laravel laravel-5.3

我正在尝试建立多个数据库连接并看到:http://fideloper.com/laravel-multiple-database-connections

我也尝试this

我在config/database.php中将我的数据库配置设置为:

'default' => 'web',

'connections' => array(

    # Our primary database connection
    'web' => array(
        'driver'    => 'mysql',
        'host' => env('DB_HOST', 'host1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'database1'),
        'username' => env('DB_USERNAME', 'user1'),
        'password' => env('DB_PASSWORD', 'pass1'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

    # Our secondary database connection
    'another' => array(
        'driver'    => 'mysql',
        'host' => env('DB_HOST', 'host2'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'database2'),
        'username' => env('DB_USERNAME', 'user2'),
        'password' => env('DB_PASSWORD', 'pass2'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),
),

我构建了我的架构,并遵循:

public function up()
    {
        Schema::connection('another')->create('some_table', function (Blueprint $table) {
            $table->integer('user_id')->unsigned();
            $table->string('test')->unique();
            $table->string('one')->index();
            $table->timestamp('created_at');
        });
    }

但是当我想运行artisan migrate时,它就是sais:

  

[InvalidArgumentException]

     

数据库[mysql]未配置。

我知道从.env文件中读取了mysql(因为如果我将其更改为某些内容,名称会更改)。

我尝试更改.env文件,如下所示:

DB_CONNECTION=web
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_db
DB_USERNAME=username
DB_PASSWORD=secret

然后我再次运行artisan migrate,它不再向我抛出错误,但似乎没有按照我的意愿创建表。我上面的架构中的表格是在'web'连接中创建的。

如果你看到我的架构:

Schema::connection('another')->create('some_table', function (Blueprint $table)

该表应该在“another”连接中创建。不在web连接中。

我也跑:

artisan migrate:install --database=web
artisan migrate:install --database=another

以及:

artisan migrate --database="web" --path="database/migrations/web"
artisan migrate --database="another" --path="database/migrations/another"

所有这些只在web连接

中创建表格

基本上它只读取.env个文件中的配置。 它永远不会听我的:config/database.php

我在这里想念的是什么?

0 个答案:

没有答案