Project

seedable

0.0
No commit activity in last 3 years
No release in over 3 years
Allows for quick serialization/deserialization of objects for moving between environments.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

>= 3.1.0
 Project Readme

Seedable¶ ↑

Data import and export for rails, to assist in seeding development databases from production.

What is Seedable?¶ ↑

Seedable is a mixin to select groups of objects, and export them via serialized JSON, to be reimported later. The goal, is less to maintain a consistent database state, but for quick dumping and restoring of data between environments, to seed your database.

Usage¶ ↑

Using Seedable is easy!

How do I include it?¶ ↑

Add the gem.

gem 'seedable'

Include the module:

include Seedable

In the models you want to export together, place the following:

seedable

Exporting records¶ ↑

To export, call:

json = @garage.to_seedable

By default, seedable will traverse all active_record associations and export all of their attributes. To exclude associations, do the following:

seedable :include_associations => [:cars, :bikes]

You can also call it after the fact:

Garage.include_associations([:cars])

To filter attributes:

seedable :filter_attributes => [:id]

You can also call it after the fact:

Garage.filter_attributes([:id])

You can also export an array of disperse object types:

[@garage, @car, @garage2, @bike].to_seedable

Importing records¶ ↑

To import:

Garage.from_seedable(json)

or, if you have JSON from a unknown object type and want it to return the proper object type:

Seedable.from_seedable(garage_json) # Returns Garage object.

or, an array of different object types:

json = [@garage, @car, @garage2, @bike].to_seedable
Seedable.from_seedable(json) # Returns array of [Garage, Car, Garage, Bike]

Caveats¶ ↑

This is the first release, and yes, there are a bunch of caveats.

Compatibility¶ ↑

  1. Compatible and tested under rails 3.1 and rails-master.

  2. Compatible and tested under ruby 1.9.2.

Exporting with primary keys¶ ↑

  1. Importing objects with associated objects by primary key will only work on rails master. This is because the code relies on mass assignment changes/abstractions destined for rails-3.2.x.

License¶ ↑

Seedable is Copyright © 2011 Christopher Meiklejohn. It is free software, and may be redistributed under the terms specified in the LICENSE file.

About¶ ↑

The seedable gem was written by Christopher Meiklejohn from Swipely, Inc..