I'd like to be able to regenerate my development database, tables and data, from script, so that if I ever have a bug in my development code, I can easily get the database back into a known state.
What is the best way to do this? Can I use fixtures to populate the tables? Can I share fixtures between tests and migrations?
At the moment, I'm using migrations to do this. For example:
class CreateFoodTable < ActiveRecord::Migration def self.up create_table "foods" do |t| t.column :name, :string t.column :grade, :string end
Food.create({ :name => "Pasta", :grade => "Good" }) Food.create({ :name => "Fish", :grade => "Raw" }) end
def self.down drop_table "foods" end end
And then to regenerate the database, I'd run:
rake migrate VERSION=0 rake migrate
Any tips appreciated.
Douglas