Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Rails 4 task to dump (parts) of your database to db/seeds.rb
Ruby

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
test
.gitignore
CHANGELOG.rdoc
MIT-LICENSE
README.rdoc
Rakefile
VERSION
seed_dump.gemspec

README.rdoc

SeedDump

Seed dump is a simple plugin that adds a rake task named db:seed:dump.

It allows you to create a db/seeds.rb from your existing data in the database. When there is no data in the database it will generate empty create statements.

Example Usage

Dump all data directly to db/seeds.rb:

rake db:seed:dump

Dump only data from the users and products table and dump a maximum amount of 10 records:

$ rake db:seed:dump MODELS=User,Product LIMIT=2

Result:

$ cat db/seeds.rb 
# Autogenerated by the db:seed:dump task
# Do not hesitate to tweak this to your needs

products = Product.create(
  { :category_id => 1, :description => "Long Sleeve Shirt", :name => "Long Sleeve Shirt" },
  { :category_id => 3, :description => "Plain White Tee Shirt", :name => "Plain T-Shirt" }
)

users = User.create(
  { :id => 1, :password => "123456", :username => "test_1" },
  { :id => 2, :password => "234567", :username => "tes2" }
)

Append to db/seeds.rb instead of overwriting it:

rake db:seed:dump APPEND=true

Use another output file instead of db/seeds.rb

rake db:seed:dump FILE=db/categories.rb

By default the :id column will not be added to the generated Create statements If you do want the :id to be included use WITH_ID:

rake db:seed:dump WITH_ID=1

If you don't want seed_dump to dump any data allready available in the database use NO_DATA.

This will generate the dump with only 1 empty create statement. It's up to you to edit these and change the values into something meaningful:

rake db:seed:dump MODEL=User NO_DATA=1 APPEND=true

Here is a full example using all of the options above:

rake db:seed:dump MODELS=Category LIMIT=10 APPEND=true FILE=db/categories.rb WITH_ID=1 NO_DATA=1

All environment variables

APPEND:

Append the data to db/seeds.rb instead of overwriting it.

FILE:

Use a different output file, default: db/seeds.rb

LIMIT:

Dump no more then this amount of data, default: no limit

MODEL(S):

A model name or a comma seperated list of models, default: all models

NO_DATA:

Don't dump any data from the db, instead generate empty Create options

WITH_ID:

Inlcude the +:id+ in the create options

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright © 2010 Rob Halff, released under the MIT license

Something went wrong with that request. Please try again.