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

时间:2015-11-20 16:46:11

标签: mysql eloquent laravel-5.1 artisan

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

我可以通过运行MySQL命令来完成它,但我很想知道是否有artisan命令来执行它?

1 个答案:

答案 0 :(得分:7)

没有办法使用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....

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