Как воссоздать тестовые данные на основе схемы базы данных разработки - PullRequest
4 голосов
/ 24 сентября 2010

Ситуация: я использовал generate scaffold , чтобы настроить мои объекты в новом проекте Rails. Помимо некоторых миграций, я также напрямую редактировал таблицы MySQL, добавляя и переименовывая столбцы и т. Д. Теперь я не могу запустить тесты, потому что автоматически сгенерированные приборы не соответствуют схеме базы данных. Возможно, они основаны на исходных определениях плюс миграции, и мои миграции не полностью описывают новую структуру.

Я обнаружил, что могу использовать "rake db: test: clone_structure" для дублирования таблиц в тестовой базе данных (db: test: prepare, очевидно, создает их из миграций?), Но я не могу понять, как получить приспособления, созданные из схемы разработки, а не из миграций (или чего бы то ни было).

Я дошел до того, что увидел метод Fixtures.create_fixtures, но куда бы я его поместил и как бы использовал его для регенерации всех моих приборов?

Ответы [ 2 ]

3 голосов
/ 24 сентября 2010

При работе с рельсами вы никогда этого не сделаете - «напрямую редактируете таблицы MySQL, добавляя и переименовывая столбцы», вы создаете миграции

http://guides.rubyonrails.org/migrations.html

1 голос
/ 01 ноября 2011

Я полностью согласен с тем, что вы не должны изменять базу данных без использования миграций, но воссоздание фикстур по-прежнему остается проблемой, с которой время от времени сталкиваются люди.Лучшее решение, которое я нашел, здесь:

http://snippets.dzone.com/posts/show/2525

...