Laravel seed database from existing database Laravel seed database from existing database laravel laravel

Laravel seed database from existing database


Try: Examples:

php artisan iseed my_tablephp artisan iseed my_table,another_table

Visit: https://github.com/orangehill/iseed


Configure your laravel app to use two mysql connections (How to use multiple database in Laravel), one for the new database, the other for the old one.

I'll fake it like old and new.

In your seeds read from the old database and write into the 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         // ...     ]);}

Make sure to add messages while seeding like $this->command->info('Users table seeded'); or even a progress bar (you can access command line methods) to know at which point of the import you are.


Download package from
Git repo : https://github.com/orangehill/iseed
then update below file src/Orangehill/Iseed/IseedCommand.phpAdd below code at line number 75

// update package script    if($this->argument('tables') === null){        $tables = Schema::getConnection()->getDoctrineSchemaManager()->listTableNames();    }

and update getArguments method in same file with below code

array('tables', InputArgument::OPTIONAL, 'comma separated string of table names'),

and then run php artisan iseed so it will get all the tables from your existing db and start creating seeders for all tables