Skip to content
Kosuke Tanabe edited this page Jan 17, 2015 · 31 revisions

enju_leafでのRails3.2系から4.1系へのアップグレード

アプリケーションを停止し、バックアップを取ります。バックアップを取らずにアップグレードを行わないでください。

$ cp -a your_enju_leaf your_enju_leaf_backup

Gemfile を編集します。

$ cd your_enju_leaf
$ vi Gemfile
  • railsのバージョン指定を変更します。
#gem 'rails', '3.2.21' # 変更前
gem 'rails', '4.1.9' # 変更後
  • 以下の行を削除します。
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
end
  • 以下の行を追加します。
gem 'sass-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'sdoc',          group: :doc, require: false
gem 'spring',        group: :development

gem 'protected_attributes'
gem 'non-stupid-digest-assets'
  • 以下の行を変更します。
# gem 'jbuilder' # 変更前
gem 'jbuilder', '~> 1.2' # 変更後

bundle update を実行します。

$ bundle update

railsの設定ファイルの更新を行います。以下のコマンドを実行します。

$ rake rails:update

設定ファイルを上書きするかどうかを以下のようにたずねてきます。以下の例では、 config/boot.rb を上書きするかどうかをたずねてきています。

$ rake rails:update
    conflict  config/boot.rb
Overwrite /Users/yourname/your_enju_leaf/config/boot.rb? (enter "h" for help) [Ynaqdh]

以下のファイルでは "n" を、それ以外のファイルでは "y" を選択します。 操作を誤った場合、バックアップからファイルを書き戻し、再度同じコマンドを実行してください。

  • config/routes.rb
  • config/initializers/inflections.rb

以下のコマンドを実行します。

$ rails g friendly_id --skip-migration

config/initializers/friendly_id.rb を開き、以下の行を変更します。

# config.use :finders # 変更前
config.use :finders # 変更後

config/application.rb を開き、以下の行をバックアップから追記します。

# config.time_zone = 'Central Time (US & Canada)' # 変更前
config.time_zone = 'Tokyo' # 変更後
# config.i18n.default_locale = :de # 変更前
config.i18n.default_locale = :ja # 変更後

config/environments/production.rb を開き、以下の行をバックアップから追記します。

Rails.application.configure do
  config.action_mailer.default_url_options = {host: 'localhost:3000'} # この行を追加
# config.cache_store = :mem_cache_store # 変更前
config.cache_store = :dalli_store # 変更後
  • WebサーバにApacheやnginxを使用しない場合、以下の行も変更します。
config.serve_static_assets = false # 変更前
config.serve_static_assets = true # 変更後

コンソールが開けるかどうかを確認します。

$ rails c production

アプリケーションが起動できるかどうかを確認します。

$ RAILS_ENV=production foreman start
Clone this wiki locally