Я попробую здесь, так как список рассылки для DM, к сожалению, не имеет большого вклада от других пользователей.
Я достаточно уверен, что это не то, что мы должны делать вручную, но, возможно, я ошибаюсь. Я удалил ActiveRecord из своего проекта и начал создавать модели в DataMapper. Все работает, но я хочу написать юнит-тесты для своих моделей (и функционал для своих контроллеров). Однако моя тестовая база данных не очищается между тестовыми запусками (это легко проверить с помощью теста). AR позаботится об этом за вас, но похоже, что ребята из DM не учли это в своем проекте dm-rails.
В отчаянной попытке стереть все с лица земли я удалил все таблицы из своей тестовой базы данных. Теперь вместо того, чтобы мои модульные тесты терпели неудачу из-за грязной среды, они терпят неудачу из-за того, что схемы не существует. Глядя на доступные мне задачи rake, я не могу восстановить свою тестовую БД, не очистив мою базу данных разработки. Я начинаю сходить с ума и надеюсь, что другой пользователь DM + Rails 3 может подтолкнуть меня в правильном направлении.
В частности, когда я запускаю свои модульные тесты, все тестовые данные должны быть удалены между методами тестирования. Кроме того, если я внесу изменения в схему, я смогу запустить свои тесты, и они должны работать.
Я попытался поместить DataMapper.auto_migrate!
в обратный вызов setup
в моем test_helper.rb, но это, похоже, не создает схему (тесты по-прежнему терпят неудачу из-за того, что таблицы не существуют, когда они пытаются вставить/выбрать записи).
Я видел https://github.com/bmabey/database_cleaner, но действительно ли нам нужно приносить внешнюю библиотеку в Rails только для того, чтобы сделать что-то, для чего DM, вероятно, уже имеет (по-видимому, недокументированную) поддержку? Это также не решает проблему воссоздания схемы.