【问题标题】:Is there any Laravel way to execute a .SQL file to load data是否有任何 Laravel 方法来执行 .SQL 文件来加载数据
【发布时间】:2016-02-23 05:55:04
【问题描述】:

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

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

【问题讨论】:

    标签: mysql eloquent laravel-5.1 laravel-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
    猜你喜欢
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多