我正在尝试建立多个数据库连接并看到: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
我在这里想念的是什么?