现有数据库中的Laravel种子数据库

Vin*_*ter 5 mysql laravel laravel-seeding

我现在有了数据库的新结构,但是我需要以新格式导入旧数据。因此,我想使用Laravel播种器,但是我需要以某种方式连接到旧数据库并进行选择查询,并告诉播种器如何将数据放入新数据库中。

那可能吗 ?

小智 8

尝试: 示例:

php artisan iseed my_table
php artisan iseed my_table,another_table
Run Code Online (Sandbox Code Playgroud)

访问:https : //github.com/orangehill/iseed


pha*_*est 6

将您的 Laravel 应用程序配置为使用两个 mysql 连接(如何在 Laravel 中使用多个数据库),一个用于新数据库,另一个用于旧数据库。

我会像old和一样伪造它new

在您的种子中从旧数据库读取并写入新数据库。

$old_user = DB::connection('old')->table('users')->get();

foreach ($old_users as $user) {
     DB::connection('new')->table('users')->insert([
         'name'     => $user->name,
         'email'    => $user->email,
         'password' => $user->password,
         'old_id'   -> $user->id
         // ...
     ]);
}
Run Code Online (Sandbox Code Playgroud)

确保在播种时添加消息,$this->command->info('Users table seeded');甚至进度条(您可以访问命令行方法)以了解您在导入的哪个点。