15
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsでデータベースを利用しないアプリケーションをデプロイするためにやったこと

Posted at

背景

データベースを利用しないアプリケーションをわざわざRailsで実装したくなる時もあると思います。
僕の場合は、バックエンドにはAPI用の別アプリケーションを使用して、react-railsを用いたフロントエンドのみのRailsアプリケーションをデプロイする必要が出たので、そのときの作業を記録します。

環境

  • Rails = 4.2.5
  • capistrano ~> 3.1

手順

  1. GemfileからDBアダプタgemの削除
  2. config/application.rbのrequire設定の変更
  3. config以下のactive_recordを使用している設定の削除
  4. test_helperのactive_recordに依存している処理の削除
  5. capistranoタスクからmigration処理の削除

1. GemfileからDBアダプタgemの削除

Gemfile

gem 'mysql2' # Remove this line
gem 'sqlite3' # Remove this line
gem 'pg' # Remove this line

2. config/application.rbのrequire設定の変更

rails/allをrequireする行があるのでこれを削除して、代わりに以下の行を足す。

config/application.rb

# require 'rails/all' # Remove this line

# Add below
%w(
  action_controller
  action_view
  action_mailer
  active_job
  rails/test_unit
  sprockets
).each do |framework|
  begin
    require "#{framework}/railtie"
  rescue LoadError
  end
end

補足

require 'rails/all'では railties/lib/rails/all.rbの以下の行が実行される

rails/all.rb
require "rails"

%w(
  active_record
  action_controller
  action_view
  action_mailer
  active_job
  rails/test_unit
  sprockets
).each do |framework|
  begin
    require "#{framework}/railtie"
  rescue LoadError
  end
end

このactive_recordをrequireする処理を除いたのが上で行ったこと。

3. config以下のactive_recordを使用している設定の解除

config/application.rb

config/application.rb
module YourApp
  class Application < Rails::Application
    config.active_record.raise_in_transactional_callbacks = true # <= Remove this line
  end
end

config/environments/{environment}.rb

config/environments/{environment}.rb
Rails.application.configure do
  config.active_record.dump_schema_after_migration = false # <= Remove this line
end

4. test_helperのactive_recordに依存している処理の削除

test/test_helper.rb

class ActiveSupport::TestCase
  fixtures :all # <= Remove this line
end

5. capistranoタスクからmigration処理の削除

config/deploy.rb

Rake::Task['deploy:migrate'].clear # Add this line


以上でデータベースに接続しないRailsアプリケーションをデプロイできるようになりました。

15
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?