Заставить огурцы выполнять миграцию вместо загрузки схемы - PullRequest
1 голос
/ 20 августа 2009

Итак, у меня есть некоторая загрузка данных в миграциях, например, при создании таблицы пользователей создается пользователь по умолчанию, а при создании таблицы foos создаются определенные роли пользователя (например, foo_admin).

Проблема в том, что огурцу это не нравится, так как он загружает схему.

Могу ли я сделать так, чтобы огурец просто запустил миграцию, или есть лучшая практика для такого рода вещей? машинист используется как фабрика (без приспособлений!)

Ответы [ 2 ]

2 голосов
/ 26 августа 2009

Не используйте миграции для загрузки данных. Это широко считается плохой практикой, поскольку загрузка данных не сохраняется при сборке schema.rb.

Загрузите ваши данные из грабли или другого метода, который вы можете подключить в начало блога вашего файла env.rb

begin do
  Role.create :name=>"admin"
  `rake RAILS_ENV="test" db:load_data_for_testing `
end

Или что-то в этом роде.

0 голосов
/ 26 августа 2009

Я столкнулся с подобными проблемами и отследил их до зависимостей в рейке. Мое решение состояло в том, чтобы запустить скрипт cucumber напрямую без граблей, но для этого может потребоваться некоторая конфигурация в Rails (с Merb это работает на месте). Другое решение - переопределить задачу rake, поскольку она зависит от db: migrate, а не от db: load_schema.

NB. У меня мало опыта с последними версиями rails там может также быть чем-то в скрипте bin / cucumber или в файле env.rb, который загружает файл схемы.

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