Лучший способ заполнить разработку БД в рельсах - PullRequest
17 голосов
/ 17 марта 2011

Мне нужно заполнить базу данных разработки test данными, например, из factorygirl, но я бы хотел использовать их из консоли rails.
Как поместить пример данных в базу данных, чтобы я мог получить их из консоли и провести там тест?

Ответы [ 4 ]

18 голосов
/ 17 марта 2011

Faker также является хорошим решением.

Вот как выглядит мой lib/tasks/sample_data.rake. Я запускаю его с rake db:populate.

Создает 50 записей со случайной информацией.

require 'faker'

namespace :db do
  desc "Fill database with sample data"
  task :populate => :environment do
    Rake::Task['db:reset'].invoke
    50.times do |n|
      name  = Faker::Company.name
      year = 1900+rand(111)
      rating = 1+rand(10)
      watched = (1 == rand(2) ? true : false)
      imdb_id = rand(1000000)
      Movie.create!(:name => name,
                    :year => year,
                    :rating => rating,
                    :watched => watched,
                    :imdb_id => imdb_id)
    end
  end
end
2 голосов
/ 17 марта 2011

Майкл Хартл (Michael Hartl) представляет отличное введение в эту тему в рамках программы railstutorial.org.

Он использует гем под названием Factory Girl , который разработан для облегчения процесса заполнениябаза данных с образцами данных.

EG

http://ruby.railstutorial.org/chapters/user-microposts#sec:sample_microposts

https://github.com/railstutorial/sample_app/blob/master/lib/tasks/sample_data.rake

2 голосов
/ 17 марта 2011

Я сделал гем test_dummy , который работает как Factory Girl, чтобы определить множество поддельных данных. При правильной настройке вы можете делать такие вещи:

# Create 100 fake companies
100.times { Company.create_dummy }

# Create a single fake company on-demand
fake_company = Company.create_dummy

Альтернативой является использование средства db/seeds.rb или загрузка ваших приборов в среду разработки.

1 голос
/ 17 марта 2011

Это просто в консоли Rails или просто "из консоли"?

Мне нравится использовать задачу Thor или Rake для этого. Вместо Factory Girl я использую Machinist.

Вы можете проверить этот ответ

Rails: Хороший пример использования Rspec2? (Также: огурец, рассол, капибара)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...