将Datamapper与现有的rails应用程序一起使用

我有一个使用ActiveRecord的现有Rails 3应用程序,我想切换到Datamapper。 dm-rails页面中给出的说明仅涉及创建新应用程序。 有谁知道如何丢弃所有activerecord dependancies并迁移到datamapper?

谢谢!

它实际上很简单,但有几件事你需要做。

在您的Gemfile中,删除“rails”,而不是需要以下内容。

gem 'activesupport', RAILS_VERSION, :require => 'active_support' gem 'actionpack', RAILS_VERSION, :require => 'action_pack' gem 'actionmailer', RAILS_VERSION, :require => 'action_mailer' gem 'railties', RAILS_VERSION, :require => 'rails' 

其中RAILS_VERSION是您要使用的Rails版本(例如~> 3.1 )。 这基本上是除ActiveRecord之外的所有轨道。

在config / application.rb的顶部,删除rails for rails(我忘记原始需要的内容)并将其替换为您需要的栏杆的特定要求。

 require "action_controller/railtie" require "action_mailer/railtie" 

我认为唯一的另一个是Test :: Unit铁路,但我们没有使用Test :: Unit,所以我们不包含它。

最后,如果你想使用身份地图(我建议你这样做,但不需要),请放在ApplicationController的类体中:

 use Rails::DataMapper::Middleware::IdentityMap 

这应该是一切; 其余的只是根据自述文件配置你的database.yml(无论如何它几乎与标准的rails交叉兼容)。

作为参考,看一下发电机的作用:

 -zsh$ curl http://datamapper.org/templates/rails.rb apply 'http://datamapper.org/templates/rails/gemfile.rb' apply 'http://datamapper.org/templates/rails/application.rb' 

如果您查看这两个文件的内容,您将看到如果您使用了生成器,您将获得额外的东西。