mysql - 是否有任何 Laravel 方法来执行 .SQL 文件来加载数据

标签 mysql eloquent laravel-5.1 laravel-artisan

我有要加载到新数据库中的历史数据。

我可以通过运行 MySQL 命令来做到这一点,但我想知道是否有 artisan 命令可以做到这一点?

最佳答案

无法使用 artisan 导入开箱即用的数据库转储。但是,您可以创建自定义 artisan 命令:

php artisan make:console DbImportCommand

然后让它发出如下命令:

DB::unprepared(file_get_contents('full/path/to/dump.sql'));

但是,创建一个运行播种器(或一组播种器)的命令可能是有利的。

php artisan make:console importHistoricalData

然后让它运行特定的播种机:

$this->call(OldCompanySeeder::class);
$this->call(OldEmployeeSeeder::class);
// etc....

如果您在某个时候删除数据库,或者移动到一个新环境,这就像再次运行播种机一样简单。

关于mysql - 是否有任何 Laravel 方法来执行 .SQL 文件来加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33831862/

相关文章:

php - 使用php使用更多关键字搜索mysql数据库

php - 在 codeigniter 中从关系数据库中获取数据

php - Laravel 连接表并获得用户的最大订单

php - 在 Mysql 数据库中插入日期值

php - 分组查询 Laravel 5.1

mysql - 如何创建一个包含 json 数据类型列的表

php - 查找两个日期之间的元素并将它们分组

Laravel Eloquent group by 与数据透视表和关系

php - 多连接 laravel Eloquent

php - 如何使用 anchor 标记显示 Laravel 验证错误