如何在Rails中弃用SQL数据库的使用

时间:2017-03-16 19:16:43

标签: ruby-on-rails ruby

我想禁用Rails尝试获取与Postgres数据库的连接,因为我的应用程序不再需要依赖此数据库。

我目前正处于从使用Postgres到使用NoSQL数据库(如Mongo)的过渡期。我已经迁移了大部分代码,但出于向后兼容的原因,我目前正在向Postgres运行影子写入。

是否足以删除ActiveRecord中间件和影子写入代码,以便如果Postgres失败或连接池停止运行,Rails应用程序将不会出现超时或停机时间?

1 个答案:

答案 0 :(得分:0)

要从您的应用程序中删除ActiveRecord,请执行以下操作:

config/application.rb中,更改此内容:

require 'rails/all'

对此:

require "active_model/railtie"
require "active_job/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "action_cable/engine"
require "sprockets/railtie"
require "rails/test_unit/railtie"

environments/development.rb中,删除此行以及您可能添加的引用config.active_record的任何其他行:

config.active_record.migration_error = :page_load

environments/production.rb中删除此行以及您可能已添加的引用config.active_record的任何其他行:

config.active_record.dump_schema_after_migration = false

如果您有config/initializers/new_framework_defaults.rb的文件,请从中删除以下行:

Rails.application.config.active_record.belongs_to_required_by_default = true

最后,删除对ActiveRecord的任何引用,例如在任何模型,迁移或schema.rb中,如果仍然存在。最好完全核对你的db文件夹。

注意:如果您不再使用ActiveModel中的任何一项,则还可以将其从application.rb中的要求中删除。

要删除连接到Postgres数据库的支持和功能,请删除文件config/database.yml并从Gemfile中删除gem 'pg'声明(然后运行bundle install)。