是否有任何 Laravel 方法来执行 .SQL 文件来加载数据
Posted
技术标签:
【中文标题】是否有任何 Laravel 方法来执行 .SQL 文件来加载数据【英文标题】:Is there any Laravel way to execute a .SQL file to load data 【发布时间】:2016-02-23 05:55:04 【问题描述】:我有想要加载到新数据库中的历史数据。
我可以通过运行 mysql 命令来做到这一点,但我很想知道是否有 artisan
命令可以做到这一点?
【问题讨论】:
【参考方案1】:无法使用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....
如果您在某个时候擦除数据库,或者迁移到新环境,这就像再次运行播种机一样简单。
【讨论】:
我确实知道播种机,但我在这里导入了数千条记录。 那我的第一个建议可能更合适。您也可以在这里查看 Seeders:laravel.com/docs/5.1/seeding以上是关于是否有任何 Laravel 方法来执行 .SQL 文件来加载数据的主要内容,如果未能解决你的问题,请参考以下文章