我的项目是使用PostgresSQL创建的,但我们真的打算使用MongoDB,为了实现这一点,我应该更改哪些内容?
很多脚手架已经发生了,所以我们正试图野蛮已经完成的任何工作......
答案 0 :(得分:1)
从Gemfile中删除数据库适配器gem(mysql2,sqlite3等)
更改config/application.rb
删除require 'rails/all'
行并要求使用您想要使用的框架,例如:
require "action_controller/railtie"
require "action_view/railtie"
require "action_mailer/railtie"
require "active_job/railtie"
require "action_cable/engine"
require "sprockets/railtie"
require "rails/test_unit/railtie"
注意:您应该使用rails/all.rb
文件中的require片段,该文件是您的Rails版本的最新版本,而不使用active_record railtie。以下是Rails master branch上rails/all.rb
的链接{<1}}。
删除您的config/database.yml
文件,db/schema.rb
和迁移(如果有)
在test/test_helper.rb
从配置/环境文件中删除任何ActiveRecord
配置
答案 1 :(得分:0)
同样的情况我也必须面对。我在上面的答案中添加了一些额外的观点。
1)在初始化器中创建一个文件并放入此代码
Mongoid.load!(Rails.root.join("config/mongoid.yml"))
2)您必须从继承自ApplicationRecord的每个模型中删除并删除application_record文件。
3)如果您已经安装了设备,那么您必须更换
**来自**
require 'devise/orm/active_record'
到
require 'devise/orm/mongoid'
4)如果您在gem文件中使用了carrierwave,则必须替换
发件人强>
gem 'carrierwave', github: 'carrierwaveuploader/carrierwave'
要强>
gem 'carrierwave-mongoid', :require => 'carrierwave/mongoid'
答案 2 :(得分:0)
迟到总比没有好!总有一天,这对某人来说应该派上用场!!!!
以下基于python的迁移框架可以完成这项工作。
https://github.com/datawrangl3r/pg2mongo
为了达到性能,每个JSON对象的迁移都是动态的,当您使用上述框架时,不应该有任何内存锁定问题。