Skip to content

karakhanyans/seeder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Database Seeder

Seeder creates an artisan command that lets you quickly create seeds from your existing database.

Install

Via Composer

composer require karakhanyans/seeder

In your app/config/app.php file, add the following to the providers array:

 Karakhanyans\Seeder\SeederServiceProvider::class,

Usage

Once installed, you should see generate:seed as one of the artisan commands when you run:

php artisan list

For example:

php artisan generate:seed

This would create seed files in your database/seeds directory with a php files, which would contain the following stub:

<?php

use Illuminate\Database\Seeder;

class UserSeed extends Seeder
{

	/**
	* Run the database seeds.
	*
	* @return void
	*/

	 protected $users;

	 public function setUsers(){
		$this->users = //serialized data;
	 }

	 public function run(){
		 $this->setUsers();
		 foreach(unserialize($this->users) as $item){
			 try{ 
				\App\User::create((array)$item);
			}catch (\Exception $e){
				\Illuminate\Support\Facades\Log::info('Duplicate entry for user: '.$item['id']);
			 }
		 }
	 }

}

In your database/seeds/DatabaseSeeder.php file, add the following to the run() action to call all new seeds:

$this->call(GlobalSeeder::class);

If your models in specific folder you should use {folder} argument to generate your Seeds from that folder.

 php artisan generate:seed Models

If you want to get all your models recursively you can use the following command with -r flag:

php artisan generate:seed Models -r

Note

For Users table please remove $hidden array to make sure that Seeder will contain all database fields.

protected $hidden = ['password', 'remember_token'];

Change log

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Security

If you discover any security related issues, please email karakhanyansa@gmail.com.

Credits

License

The MIT License (MIT). Please see License File for more information.