Skip to content
Kosuke Tanabe edited this page Aug 20, 2016 · 54 revisions

1.2系へのアップデート

1.2系は現在開発中であり、以下の手順は変更されることがあります。以下はenju_leaf-1.2.0.beta3時点での手順です。

enju_leaf-1.0以前からアップデートする場合は、enju_leaf-1.1.4にアップデートしてから実行してください。

  1. Enjuを停止します。以下は仮想マシンでの停止方法です。
$ sudo stop enju_leaf
  1. unzipコマンドがインストールされていない場合、インストールします。enju_leaf-1.1.2以前の仮想マシンにはインストールされていないので、以下のコマンドでインストールします。これはsunspot_solrの動作に必要です。
$ sudo apt-get install unzip
  1. 以下のファイルを編集します。

Gemfile:

# rails 4.2.7.1以上を指定。 rails 5.0は未対応
gem 'rails', '~> 4.2.7.1'

# 以下の行を削除
# ほかにもenju_*を読み込んでいる行(gem 'enju_leaf'などで始まる行)をすべて削除
# gem 'enju_leaf', '~> 1.1.4'
# gem 'enju_flower', '~> 0.1.2'
# gem 'enju_ndl', '~> 0.1.0'
# gem 'enju_circulation', '~> 0.1.0'
# gem 'enju_subject', '~> 0.1.0'

# 以下の行を追加
gem 'enju_leaf', '~> 1.2.0.beta.3'
gem 'enju_manifestation_viewer', '~> 0.2.0.beta.2'
gem 'enju_circulation', '~> 0.2.0.beta.2'
gem 'enju_subject', '~> 0.2.0.beta.3'
gem 'enju_ndl', '~> 0.2.0.beta.2'
gem 'statesman', '~> 1.3'
gem 'globalize', '~> 5.0.1'
gem 'globalize-accessors'
gem 'redis-rails'
gem 'resque', require: 'resque/server'

# 以下の行を変更。変更前
gem 'turbolinks'
gem 'sunspot_solr', '2.2.0' 
gem 'exception_notification-rake'

# 変更後
gem 'turbolinks', '~> 2.5'
gem 'sunspot_solr', '~> 2.2.5'

Rakefile:

require 'resque/tasks'
# 以下の行を削除
# require 'resque/scheduler/tasks'

app/models/user.rb:

class User < ActiveRecord::Base  
devise :database_authenticatable, #:registerable,
  :recoverable, :rememberable, :trackable, #, :validatable
  :lockable, :lock_strategy => :none, :unlock_strategy => :none
  # 以下の行を削除
  #enju_leaf_user_model
  #enju_circulation_user_model
  #enju_message_user_model

  # 以下の行を追加
  include EnjuSeed::EnjuUser
  include EnjuCirculation::EnjuUser
  include EnjuMessage::EnjuUser

  # 以下の行があれば変更
  # enju_purchase_request_user_model # 変更前
  include EnjuPurchaseRequest::EnjuUser # 変更後

  # 以下の行があれば削除
  # include EnjuLeaf::EnjuUser
end

# 以下の行を追加
Accept.include(EnjuCirculation::EnjuAccept)
Basket.include(EnjuCirculation::EnjuBasket)
CarrierType.include(EnjuCirculation::EnjuCarrierType)
Manifestation.include(EnjuCirculation::EnjuManifestation)
Item.include(EnjuCirculation::EnjuItem)
Profile.include(EnjuCirculation::EnjuProfile)
UserGroup.include(EnjuCirculation::EnjuUserGroup)
Withdraw.include(EnjuCirculation::EnjuWithdraw)
Item.include(EnjuLibrary::EnjuItem)
Manifestation.include(EnjuSubject::EnjuManifestation)

app/controllers/application_controller.rb:

# 以下の行を削除
# enju_leaf
# enju_biblio
# enju_library
# enju_circulation
# enju_event
# enju_subject
# 
#mobylette_config do |config|
#  config[:skip_xhr_requests] = false
#  config[:skip_user_agents] = ENV['ENJU_SKIP_MOBILE_AGENTS'].to_s.split(',').map{|a|
#    a.to_sym
#}
#end

# 以下の行を追加
include EnjuLibrary::Controller
include EnjuBiblio::Controller
include EnjuCirculation::Controller
include EnjuEvent::Controller
include EnjuSubject::Controller
include Pundit
before_action :set_paper_trail_whodunnit
after_action :verify_authorized, unless: :devise_controller?

# 以下の行があれば変更
# enju_purchase_request # 変更前
include EnjuPurchaseRequest::Controller # 変更後

# 以下の行があれば削除
# include EnjuLeaf::Controller

config/application.rb:

  config.active_record.raise_in_transactional_callbacks = true  
  # 以下の1行を追加
  config.active_job.queue_adapter = :resque

end
end

config/routes.rb:

devise_for :users, skip: [:registration]

# 以下の3行を追加
authenticate :user, lambda {|u| u.role.try(:name) == 'Administrator' } do
  mount Resque::Server.new, at: "/resque", as: :resque
end

Procfile:

# 変更前
# resque: bundle exec rake environment resque:work QUEUE=enju_leaf TERM_CHILD=1
# 変更後。mailersを追加
resque: bundle exec rake environment resque:work QUEUE=enju_leaf,mailers TERM_CHILD=1

config/initializers/enju_leaf.rb:

もし存在すれば削除します。

  1. Solrの設定ファイルをバックアップします。
$ mv solr solr_old
  1. 依存ライブラリとデータベース、キャッシュファイルを更新します。
$ bundle update
$ bundle exec rake railties:install:migrations
$ bundle exec rake db:migrate RAILS_ENV=production
$ bundle exec rake enju_leaf:upgrade RAILS_ENV=production
$ bundle exec rake assets:precompile
  1. 起動スクリプトを修正します。以下は仮想マシン(Ubuntu 14.04)での例です。"-u"オプションは、Enjuを実行するユーザのユーザ名に変更してください。
$ sudo foreman export upstart -a enju_leaf -u vagrant /etc/init/
  1. Enjuを起動します。以下は仮想マシンでの起動方法です。
$ sudo start enju_leaf
  1. Solrのインデックスを再作成します。
$ bundle exec rake sunspot:reindex RAILS_ENV=production
Clone this wiki locally