我在Laravel应用程序中使用2个数据库。我有一个本地的SQLite数据库和一个远程MySQL数据库。现在,需要时,我需要切换env
文件以连接到每个DB。我的问题是,是否可以切换环境文件,以便我用于两个数据库的模型都可以在相应的数据库上工作。
这个项目是一个相当新的项目,所以如果有人知道更好的方法来解决这个问题,我会耳目一新。
答案 0 :(得分:1)
您可以在connections
文件中定义几个config/database.php
,并通过connection
外观上的DB
方法访问每个连接:
$sqliteUsers = DB::connection('sqlite')->select(...);
$mysqlUsers = DB::connection('mysql')->select(...);
在Laravel文档上查看"Using Multiple Database Connections"部分以获取更多信息。
您可以在雄辩的模型上使用on
方法:
use App\User;
$sqliteUsers = User::on('sqlite')->get()
$mysqlUsers = User::on('mysql')->get();
您还可以静态地为雄辩的模型指定一个连接:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Flight extends Model
{
/**
* The connection name for the model.
*
* @var string
*/
protected $connection = 'sqlite';
}
在Laravel文档上查看"Database Connection"部分以获取更多信息。