Для записи, у нас есть приложение, связывая в наши живые производственных базы данных, мы используем тест логин детали, а оттуда - тестовая БД.
Последнее, что мы хотели, было для рельсов уничтожить или схему базы данных при запуске rspec/unit tests.
использование информации этот вопрос и здесь: Is it possible to get a list of all available rake tasks in a namespace?
я смог придумать следующее решение:
Rake.application.in_namespace(:db){|x|
x.tasks.map{|t|
Rake.application.instance_variable_get('@tasks').delete(t.name)
}
}
Это помещается в конце нашего Rakefile позволило нам удалить все дб : грабли задачи, как можно увидеть здесь:
[[email protected] app1{master}]$ rake -T db
[[email protected] app1{master}]$
с небольшой настройки это может быть сделано, чтобы отключить на окружающую среду на основе
Update:
Слово предупреждения делает это для БД имен сломал testunit и требовалось добавить Аддисон:
namespace :db do
task 'test:prepare' do
end
end
Rake :: Task ['db: reset']. Clear_actions кажется проще в использовании. – Veger
Во-вторых, резервные копии, не говоря уже о блокировке рабочей среды, доступ к которой возможен только у пары людей. –
Veger: «Но лучше альтернативы, похоже, просто не набирать rake db: reset command» ... в идеале, да, но граблиные задачи могут вызывать друг друга, поэтому иногда быть осторожным является оправданным. –