2017-01-06 2 views
-1

Я использую Rails 5 с Minitest 5.9.С Rails Minitest, как мне воссоздать представления по миграции db для моей тестовой базы данных?

У меня есть несколько видов в приложении для сложных запросов.

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

Как мне автоматизировать отдых?

+0

Вы можете использовать простой старый SQL в миграции, которая создает представления. Существует также жемчужина, называемая [Scenic] (https://robots.thoughtbot.com/announcing-scenic--versioned-database-views-for-rails), которая делает представления в базе данных более состоятельными гражданами первого класса. – max

+0

Я использую SQL в переносе, но каждый раз, когда я делаю новую миграцию, он выполняет миграцию, и во время этого процесса очищаются мои представления, поэтому я должен их воссоздать. Я также пробовал https://github.com/anykeyh/rails_db_views, который сделал взгляды граждан первого класса и отлично поработал, но он столкнулся с другим камнем, поэтому я остановился. Спасибо за отзыв о Scenic Я посмотрю. –

ответ

1

У меня была аналогичная проблема. У нас были некоторые триггеры на нашей БД, которые не могли быть созданы путем миграции рельсов.

Решение, за которым мы следовали, использует семена. Мы определили наши триггеры в db/seeds.rb, и перед запуском тестов мы запустили rake db:reset. Это отбросило БД, снова создало его, загрузило схему и запустило то, что находится в db/seeds.rb.

Надеюсь, вы можете использовать то же самое.

+1

Спасибо! Я мог бы это сделать. Прямо сейчас наши семена db имеют данные в нем для dev и prod. Я думаю, я мог бы поставить условную логику там, что делать в зависимости от env ... –

Смежные вопросы