【发布时间】:2016-06-14 10:59:04
【问题描述】:
使用多个数据库管理 Laravel 迁移的最佳实践是什么?
【问题讨论】:
使用多个数据库管理 Laravel 迁移的最佳实践是什么?
【问题讨论】:
在你的app/config/database.php
这样做
return array(
'default' => 'mysql',
'connections' => array(
# Our primary database connection
'mysecond_database' => array(
'driver' => 'mysql',
'host' => 'host1',
'database' => 'database1',
'username' => 'user1',
'password' => 'pass1'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
# Our secondary database connection
'myfirst_database' => array(
'driver' => 'mysql',
'host' => 'host2',
'database' => 'database2',
'username' => 'user2',
'password' => 'pass2'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
);
然后在你的迁移中你可以这样做
Schema::connection('mysecond_database')->create('users', function($table)
{
$table->increments('id'):
});
这将在mysql2 连接(数据库)中创建users 表
要使用另一个连接,只需像这样更改它
Schema::connection('myfirst_database')->create('posts', function($table)
{
$table->increments('id'):
});
如果你想从一个表中检索数据
$users = DB::connection('mysecond_database')->select(...);
如果你想使用 eloquent,你只需要像这样在模型中定义连接:
class users extends Eloquent {
protected $connection = 'mysecond_database';
}
那么你可以像这样轻松地做到这一点
$users = User::all();
【讨论】: