Skip to content

Commit

Permalink
Added db/seeds.rb as a default file for storing seed data for the dat…
Browse files Browse the repository at this point in the history
…abase. Can be loaded with rake db:seed (or created alongside the db with db:setup). (This is also known as the "Stop Putting Gawd Damn Seed Data In Your Migrations" feature) [DHH]

Conflicts:

	railties/CHANGELOG
  • Loading branch information
dhh authored and lifo committed Aug 18, 2009
1 parent b9f668e commit f3c7bbe
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 2 deletions.
3 changes: 3 additions & 0 deletions railties/Rakefile
Expand Up @@ -199,11 +199,14 @@ task :copy_configs do

cp "configs/locales/en.yml", "#{PKG_DESTINATION}/config/locales/en.yml"

cp "configs/seeds.rb", "#{PKG_DESTINATION}/db/seeds.rb"

cp "environments/boot.rb", "#{PKG_DESTINATION}/config/boot.rb"
cp "environments/environment.rb", "#{PKG_DESTINATION}/config/environment.rb"
cp "environments/production.rb", "#{PKG_DESTINATION}/config/environments/production.rb"
cp "environments/development.rb", "#{PKG_DESTINATION}/config/environments/development.rb"
cp "environments/test.rb", "#{PKG_DESTINATION}/config/environments/test.rb"

end

task :copy_binfiles do
Expand Down
7 changes: 7 additions & 0 deletions railties/configs/seeds.rb
@@ -0,0 +1,7 @@
# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
#
# Examples:
#
# cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
# Major.create(:name => 'Daley', :city => cities.first)
Expand Up @@ -125,6 +125,7 @@ def create_config_files(m)
create_database_configuration_file(m)
create_routes_file(m)
create_locale_file(m)
create_seeds_file(m)
create_initializer_files(m)
create_environment_files(m)
end
Expand Down Expand Up @@ -176,6 +177,10 @@ def create_routes_file(m)
m.file "configs/routes.rb", "config/routes.rb"
end

def create_seeds_file(m)
m.file "configs/seeds.rb", "db/seeds.rb"
end

def create_initializer_files(m)
%w(
backtrace_silencers
Expand Down
13 changes: 11 additions & 2 deletions railties/lib/tasks/databases.rake
Expand Up @@ -156,8 +156,8 @@ namespace :db do
Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
end

desc 'Drops and recreates the database from db/schema.rb for the current environment.'
task :reset => ['db:drop', 'db:create', 'db:schema:load']
desc 'Drops and recreates the database from db/schema.rb for the current environment and loads the seeds.'
task :reset => [ 'db:drop', 'db:setup' ]

desc "Retrieves the charset for the current environment's database"
task :charset => :environment do
Expand Down Expand Up @@ -206,6 +206,15 @@ namespace :db do
end
end

desc 'Create the database, load the schema, and initialize with the seed data'
task :setup => [ 'db:create', 'db:schema:load', 'db:seed' ]

desc 'Load the seed data from db/seeds.rb'
task :seed => :environment do
seed_file = File.join(Rails.root, 'db', 'seeds.rb')
load(seed_file) if File.exist?(seed_file)
end

namespace :fixtures do
desc "Load fixtures into the current environment's database. Load specific fixtures using FIXTURES=x,y. Load from subdirectory in test/fixtures using FIXTURES_DIR=z. Specify an alternative path (eg. spec/fixtures) using FIXTURES_PATH=spec/fixtures."
task :load => :environment do
Expand Down

0 comments on commit f3c7bbe

Please sign in to comment.