Sha256: 4c141de3a8374da8a6081bedaa9e95169355bcbfaec238655b8c047fb1d8e75b

Contents?: true

Size: 1.85 KB

Versions: 6

Compression:

Stored size: 1.85 KB

Contents

# Versioned Seeds [![Build Status](https://secure.travis-ci.org/simonc/versioned_seeds.png)](http://travis-ci.org/simonc/versioned_seeds)

Versioned Seeds is an alternative to Rails seeds. It allows to store your seeds in several files and prevent from re-seeding.

Rails seeds are great when you create a project but what about new ones when the project is already running ? When you have to import some data from a CSV file ?

Versioned Seeds provides a simple, conventions based, way to do that.

## Installation

Add this line to your `Gemfile` :

    gem 'versioned_seeds', :require => false

If you're using Git, as you should, be sure to call this in your shell :

    $ echo ".versionned_seeds" >> .gitignore

## Usage

### Get current version

You can get the last imported seeds version :

    $ rake vs:status
    Last seeds: 0

### Generate a seeding script

The generator will simply generate a timestamped file where you can put anything you want :

    $ rails g versioned_seeds:seed_file some_seeding_script
          create  db/seeds/20111205155806_some_seeding_script.rb

### Loading the scripts

Given two seeds files :

``` ruby
# db/seeds/20111205155801_create_users.rb
User.create!(:username => 'admin', :password => 'password', :admin => true)
User.create!(:username => 'user1', :password => 'password')

# db/seeds/20111205155802_import_articles.rb
require 'csv'

CSV.foreach('/some/file.csv') do |line|
  # ...
end
```

You can import only the first one by using the `vs:next` task :

    $ rake vs:next
    Loading: 20111205155801_create_users.rb

    $ rake vs:status
    Last seeds: 20111205155801

Or load all files using the `vs:all` task :

    $ rake vs:all
    Loading: 20111205155801_create_users.rb
    Loading: 20111205155802_import_articles.rb
    
    $ rake vs:status
    Last seeds: 20111205155802

Every script imported once will never be loaded again.

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
versioned_seeds-0.5.1 README.mdown
versioned_seeds-0.5.0 README.mdown
versioned_seeds-0.4.0 README.mdown
versioned_seeds-0.3.1 README.mdown
versioned_seeds-0.3.0 README.mdown
versioned_seeds-0.2.1 README.mdown