adamgoose/seed-gen

Generate a new seed file based on data from the existing database table.

dev-master 2013-08-15 00:03 UTC

README

Seed generator (SeedGen) is a Laravel 4 package that provides a method to generate a new seed file based on data from the existing database table.

Installation

  1. Edit your project's composer.json file to require adamgoose/seed-gen.

    "require": { "laravel/framework": "4.0.*", "adamgoose/seed-gen": "dev-master" }

  2. Update Composer from the CLI:

    composer update

  3. Once this operation completes, add the service provider by opening a app/config/app.php file, and adding a new item to the providers array.

    'Adamgoose\SeedGen\SeedGenServiceProvider'

Usage

To generate a seed file simply call: \SeedGen::generateSeed('users');

This will create a file inside a /app/database/seeds, with the contents similar to following example:

<?php

// File: /app/database/seeds/UsersTableSeeder.php

class UsersTableSeeder extends Seeder {

	/**
	 * Auto generated seed file
	 *
	 * @return void
	 */
	public function run()
	{
		\DB::table('users')->delete();
		\DB::table('users')->insert(array (
			0 =>
			array (
				'id' => '1',
				'email' => 'admin@admin.com',
				'password' => '$2y$10$tUGCkQf/0NY3w1l9sobGsudt6UngnoVXx/lUoh9ElcSOD0ERRkK9C',
				'permissions' => NULL,
				'activated' => '1',
				'activation_code' => NULL,
				'activated_at' => NULL,
				'last_login' => NULL,
				'persist_code' => NULL,
				'reset_password_code' => NULL,
				'first_name' => NULL,
				'last_name' => NULL,
				'created_at' => '2013-06-11 07:47:40',
				'updated_at' => '2013-06-11 07:47:40',
			),
			1 =>
			array (
				'id' => '2',
				'email' => 'user@user.com',
				'password' => '$2y$10$ImNvsMzK/BOgNSYgpjs/3OjMKMHeA9BH/hjl43EiuBuLkZGPMuZ2W',
				'permissions' => NULL,
				'activated' => '1',
				'activation_code' => NULL,
				'activated_at' => NULL,
				'last_login' => '2013-06-11 07:54:57',
				'persist_code' => '$2y$10$C0la8WuyqC6AU2TpUwj0I.E3Mrva8A3tuVFWxXN5u7jswRKzsYYHK',
				'reset_password_code' => NULL,
				'first_name' => NULL,
				'last_name' => NULL,
				'created_at' => '2013-06-11 07:47:40',
				'updated_at' => '2013-06-11 07:54:57',
			),
		));
	}

}

This command will also update app/database/seeds/DatabaseSeeder.php to include a call to this newly generated seed class.

To (re)seed the database go to the Terminal and run Laravel's db:seed command (php artisan db:seed).