-
Notifications
You must be signed in to change notification settings - Fork 24
Update to 1.2
Kosuke Tanabe edited this page Jun 10, 2018
·
54 revisions
Railsを4.2.7.1以上にアップデートしてください(Rails5はテスト中)。enju_leaf-1.0以前からアップデートする場合は、enju_leaf-1.1.4にアップデートしてから実行してください。
- Enjuを停止します。以下は仮想マシンでの停止方法です。
$ sudo stop enju_leaf
- unzipコマンドがインストールされていない場合、インストールします。enju_leaf-1.1.2以前の仮想マシンにはインストールされていないので、以下のコマンドでインストールします。これはsunspot_solrの動作に必要です。
$ sudo apt-get install unzip
- 以下のファイルを編集します。
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'
gem 'enju_manifestation_viewer', '~> 0.2.0'
gem 'enju_circulation', '~> 0.2.0'
gem 'enju_subject', '~> 0.2.0'
gem 'enju_ndl', '~> 0.2.0'
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の前に以下の3行を追加
authenticate :user, lambda {|u| u.role.try(:name) == 'Administrator' } do
mount Resque::Server.new, at: "/resque", as: :resque
end
devise_for :users, skip: [:registration]
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:
もし存在すれば削除します。
- Solrの設定ファイルをバックアップします。
$ mv solr solr_old
- 依存ライブラリとデータベース、キャッシュファイルを更新します。
$ 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
- 起動スクリプトを修正します。以下は仮想マシン(Ubuntu 14.04)での例です。"-u"オプションは、Enjuを実行するユーザのユーザ名に変更してください。
$ sudo foreman export upstart -a enju_leaf -u vagrant /etc/init/
- Enjuを起動します。以下は仮想マシンでの起動方法です。
$ sudo start enju_leaf
- Solrのインデックスを再作成します。
$ bundle exec rake sunspot:reindex RAILS_ENV=production
以下のコマンドで実行可能です。
$ bundle update
$ sudo restart enju_leaf