0.0
No commit activity in last 3 years
No release in over 3 years
The better way to load seed data (than seeds.rb)
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

Bootstrapper

A rather simple gem that executes a block to load seed/bootstrap data into a database.

Example

Run the bootstrapper generator:

Rails 3:

./script/rails g bootstrapper

Rails 2:

ruby script/generate bootstrapper

This will place a bootstrap.rb file in the db directory within your project.

The file will have something like this in it:

Bootstrapper.for :development do |b|
end

Bootstrapper.for :production do |b|
end

Bootstrapper.for :test do |b|
end

Bootstrapper.for :staging do |b|
end

Using things like Factory Girl and Forgery you can quickly and easily generate fake, random, and/or seed data.

An example using Factory Girl:

Bootstrapper.for :development do |b|
  b.truncate_tables :addresses
  b.run :users

  Factory(:us_address, :state => "ME")
  Factory(:us_address, :state => "IL")
  Factory(:us_address, :state => "CA")
end

Bootstrapper.for :production do |b|
end

Bootstrapper.for :test do |b|
end

Bootstrapper.for :staging do |b|
end

Bootstrapper.for :users do |b|
  3.times{ Factory(:user) }
  Factory(:user, :login => "admin",
                 :password => "sekret",
                 :password_confirmation => "sekret")
end

With that file, you could run:

rake db:bootstrap

Which will run the development (default) bootstrap. You can specify which bootstrap task to run by specifying:

rake db:bootstrap BOOTSTRAP=users

You can also run bootstrap for another environment:

rake db:bootstrap RAILS_ENV=production

You can even run a specific bootstrap for another environment:

rake db:bootstrap BOOTSTRAP=users RAILS_ENV=production

The variable passed into a Bootstrapper block is actually Bootstrapper itself, so you can use any methods it has.

You can delete all records from tables using 'truncate_tables':

b.truncate_tables :users
b.truncate_tables :users, :addresses

You can run other bootstrap tasks using 'run':

b.run :users
b.run :production

FactoryGirl http://github.com/thoughtbot/factory_girl/tree/master

Forgery http://github.com/sevenwire/forgery/tree/master

Copyright (c) 2008 Sevenwire, released under the MIT license Contributions from Jared Mehle (jrmehle)