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

1.2系へのアップデート

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

Enjuを停止します。以下は仮想マシンでの停止方法です。

$ sudo stop enju_leaf

unzipコマンドがインストールされていない場合、インストールします。仮想マシンにはインストールされていないので、以下のコマンドでインストールします。これはsunspot_solrの動作に必要です。

$ sudo apt-get install unzip

以下のファイルを編集します。

Gemfile:

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

# 以下の行を削除
# ほかにも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.2'
gem 'enju_manifestation_viewer', '~> 0.2.0.beta.2'
gem 'enju_circulation', '~> 0.2.0.beta.2'
gem 'enju_event', '~> 0.2.0.beta.2'
gem 'enju_subject', '~> 0.2.0.beta.1'
gem 'enju_ndl', '~> 0.2.0.beta.1'
gem 'redis-rails'
gem 'resque', require: 'resque/server'

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

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

Rakefile:

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

app/models/user.rb:

  # 以下の行を削除
  #enju_leaf_user_model
  #enju_circulation_user_model
  #enju_message_user_model

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

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

app/controllers/application_controller.rb:

  # 以下の行を追加
  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_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

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

config/application.rb:

    # 以下の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

app/models/user.rb の末尾に以下の内容を追加します。

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)

Solrの設定ファイルをバックアップします。

$ mv solr solr_old

依存ライブラリとデータベースを更新します。

$ bundle update
$ bundle exec rake railties:install:migrations
$ bundle exec rake db:migrate RAILS_ENV=production

状態遷移の情報を更新します。

$ bundle exec rake statesman:backfill_most_recent[UserExportFile] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[UserImportFile] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[AgentImportFile] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[ImportRequest] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[ResourceExportFile] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[ResourceImportFile] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[EventExportFile] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[EventImportFile] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[Message] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[MessageRequest] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[ManifestationCheckoutStat] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[ManifestationReserveStat] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[UserCheckoutStat] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[UserReserveStat] RAILS_ENV=production
$ bundle exec rake statesman:backfill_most_recent[Reserve] RAILS_ENV=production

CSSとJavaScriptのキャッシュファイルを更新します。

$ bundle exec rake assets:precompile

Enjuを起動します。以下は仮想マシンでの起動方法です。

$ sudo start enju_leaf

Solrのインデックスを再作成します。

$ bundle exec rake sunspot:reindex RAILS_ENV=production
Clone this wiki locally