问题
I have historical data that I want to load in new DB.
I could do it by running MySQL command but I am interested to know whether there are artisan
commands to do it?
回答1:
There isn't a way to import a DB dump out-of-the-box using artisan
. However, you could create a custom artisan
command:
php artisan make:console DbImportCommand
and then have it issue a command like:
DB::unprepared(file_get_contents('full/path/to/dump.sql'));
However, it may be advantageous to create a command that runs a seeder (or set of seeders).
php artisan make:console importHistoricalData
and then have that run specific seeders:
$this->call(OldCompanySeeder::class);
$this->call(OldEmployeeSeeder::class);
// etc....
If you wipe the database at some point, or move to a new environment, it's as simple as just running the seeders again.
来源:https://stackoverflow.com/questions/33831862/is-there-any-laravel-way-to-execute-a-sql-file-to-load-data