如何使用laravel从旧数据库表中的数据填充新表?两个数据库都有不同的结构。有没有可能用拉氏播种法?

最佳答案

您可以在laravel中使用multiple database connections连接到两个数据库。
config/database.php配置

return [
    'connections' => [
        'old_db' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST_OLD'),
            'database'  => env('DB_DATABASE_OLD'),
            'username'  => env('DB_USERNAME_OLD'),
            'password'  => env('DB_PASSWORD_OLD'),
        ],
        'new_db' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST'),
            'database'  => env('DB_DATABASE'),
            'username'  => env('DB_USERNAME'),
            'password'  => env('DB_PASSWORD'),
        ],
    ],
];

然后在seed文件中,您可以连接到旧数据库并循环这些项并将它们插入到新数据库中
usertableseeder.php
$users = DB::connection('old_db')->table('users')->get();

foreach($users as $user){
    DB::connection('new_db')->table('users')->insert([
        'name' => $user->username, //different fieldnames
        'email' => $user->emailaddress, //different fieldnames
    ]);
}

关于php - Laravel旧表中的数据库种子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31162607/

10-12 17:44
查看更多