AHA! Я не знаю, является ли это той же проблемой, что и у вас, но я обнаружил, что в моем приложении проблема была в config/application.rb
:
Строка: require 'rails/all'
должна быть заменена для проектов Datamapper на:
# Pick the frameworks you want:
require 'action_controller/railtie'
require 'dm-rails/railtie'
# require 'action_mailer/railtie'
# require 'active_resource/railtie'
# require 'rails/test_unit/railtie'
Задача rake Datamapper для db: migrate фактически включена в dm-rails/railtie
(не в dm-migrations). Я считаю, что проблема (задача AR rake db) находится в active_resource / railtie, что вам не нужно, если вы используете DataMapper.
Я не знаю, как rake решает, какие задачи использовать, но я понимаю, что он пытается запустить обе задачи с одинаковым именем, если они определены.
Однако в ВАШЕМ случае вам может понадобиться active_resource/railtie
, и в этом случае единственное решение, которое я могу придумать, кроме использования другого пространства имен, такого как обходной путь, - переопределить db: migrate. Rake Task, используя что-то вроде этого в пользовательском файле задачи:
namespace :db do
Rake::Task["db:migrate"].clear
task :migrate do
...
end
end