Ruby on Rails: Доступ к производственным данным базы данных для тестирования

С Ruby on Rails, там способ для меня вывести мою производственную базу данных в форму, к которой может получить доступ тестовая часть направляющих?

Я думаю или способ превратить производственную базу данных в приспособления или иначе способ переместить данные из производственной базы данных в тестовую базу данных, которая не будет обычно убираться направляющими.

Я хотел бы использовать эти данные для множества тестов, но в первую очередь в моем уме использует реальные данные с тестами производительности, так, чтобы я мог получить реалистическое понимание времени загрузки.

5
задан William Jones 12 April 2010 в 21:43
поделиться

3 ответа

Вы также можете проверить http://github.com/napcs/lazy_developer , который позволит вам помещать производственные данные в файлы yaml.

4
ответ дан 14 December 2019 в 13:31
поделиться

Вы можете использовать seed.rb внутри папки db, заполните свою тестовую базу данных данные, которые вам нужны. На Railscasts есть хороший пример: http://railscasts.com/episodes?search=seed

Тем не менее, я бы порекомендовал вам хранить производственные данные подальше от среды тестирования. И делайте бэкапы !!!

0
ответ дан 14 December 2019 в 13:31
поделиться

Мы только что столкнулись с подобной проблемой и в итоге написали вспомогательный метод в rspec, который извлекает некоторые данные (в нашем случае, данные входа для некоторых учетных записей) из производственной базы данных.

Следующее должно дать представление:

require 'yaml'

def accounts
  @accounts ||= lambda {
    config = YAML.load_file("#{Rails.root}/config/database.yml")['production']

    dbh = Mysql.real_connect(config['host'], config['username'], config['password'], config['database'])

    accounts = []
    result = dbh.query("SELECT `accounts`.* FROM `accounts`")
    while row = result.fetch_hash do
      row.delete("id")
      accounts << Account.make(row)
    end

    dbh.close

    return accounts
  }.call
end
2
ответ дан 14 December 2019 в 13:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: