-
Notifications
You must be signed in to change notification settings - Fork 24
Update 1.1
- Railsのアップデートについては、 UpgradingRails を参照してください。
- 1.2系(開発中)へのアップデートについては、Update-to-1.2を参照してください。
以下のうち、該当するバージョン間の手順をすべて実行してください。
Gemfileに以下の修正を行ってください。
# , '~> 2.0.2'がなければ追加
gem 'dotenv-rails', '~> 2.0.2'
さらに以下のコマンドを実行した後、Enjuを再起動してください。
$ cd /path/to/enju
$ bundle update
config/initializers/assets.rb に以下の行を追加してください。
Rails.application.config.assets.precompile += %w( *.png *.gif )
次に、以下のコマンドを実行してください。
$ bundle exec rake assets:precompile
Enjuを再起動してください。
$ sudo restart enju_leaf
(念のため)Enjuを停止してください。
$ sudo stop enju_leaf
Gemfileの以下の部分を編集してください。
# 変更前
#gem 'sunspot_solr', '~> 2.2'
# 変更後
gem 'sunspot_solr', '2.2.0'
また、Ruby 1.9.3をお使いの場合のみ、以下の行をGemfileに追加してください。
# 変更前
#gem 'exception_notification", '~> 4.1'
# 変更後
gem 'exception_notification', '4.1.1'
gem 'cancancan', '~> 1.12.0'
次に、以下のコマンドを実行してください。
$ bundle update
$ bundle exec rake railties:install:migrations
$ bundle exec rake db:migrate RAILS_ENV=production
$ bundle exec rake assets:precompile
Enjuを再起動してください。
$ sudo start enju_leaf
Solrが起動したら(トップ画面が表示されたら)、以下を実行してください。
$ bundle exec rake sunspot:reindex RAILS_ENV=production
なお、1.1.0からは書影の設定方法が図書館全体の設定で行うように変わりました。 初期設定マニュアル 「3-1 図書館全体の設定をする」を参考に、設定を再度行ってください。
作業前に、必ずバックアップを取得してください。
Gemfileで最新版のRailsを指定してください。
gem 'rails', '3.2.22' # 3.2系
gem 'rails', '4.1.14' # 4.1系
gem 'rails', '4.2.5' # 4.2系
Gemfileに以下の行が含まれていた場合、削除してください。
# 以下の2行を削除
gem 'protected_attributes'
gem 'statesman', '~> 0.8'
Rails 3.2/4.1をお使いの場合のみ、Gemfileに以下の行を追加してください。Rails 4.2では追加の必要はありません。
gem "foreigner"
これは、itemsテーブルのmanifestation_idカラムに外部キー制約を追加するためのものです。manifestationsテーブルのidカラムに存在しない値を、itemsテーブルのmanifestation_idカラムに設定できなくなります。ただし、この機能が有効になるのは、PostgreSQLとMySQLをお使いの場合のみです。
Rails 3.2をお使いの場合、以下の行をGemfileに追加してください。
# Rails 3.2を使用している場合、以下の行を追加
gem 'strong_parameters'
Rails 3.2をお使いの場合、config/application.rbを以下のように変更してください。
# 変更前
#config.active_record.whitelist_attributes = true
# 変更後
config.active_record.whitelist_attributes = false
app/controllers/application_controller.rb を以下のように変更します。
以下の行があればすべて削除します。
# 以下の行があればすべて削除
private
def mobylette_options
@mobylette_options ||= ApplicationController.send(:mobylette_options).merge(
{
:skip_xhr_requests => false
}
)
end
以下の行があれば削除します。
# 以下の行があれば削除
mobylette_config do |config|
config[:skip_user_agents] = Setting.enju.skip_mobile_agents.map{|a| a.to_sym}
end
以下の行がなければ追加します。
# 以下の行がなければ追加
mobylette_config do |config|
config[:skip_user_agents] = ENV['ENJU_SKIP_MOBILE_AGENTS'].to_s.split(',').map{|a|
a.to_sym
}
end
app/models/users.rb に以下のような attr_accessible を含む行が含まれていた場合、削除してください。
# 以下の行を削除
attr_accessible :username
attr_accessible :email, :password, :password_confirmation, :remember_me
依存ライブラリとデータベースを更新します。
$ bundle update
$ bundle exec rake railties:install:migrations
検索サーバを停止します。以下は仮想マシンの例です。
$ bundle exec rake sunspot:solr:stop RAILS_ENV=production
検索サーバの設定ファイルを再作成します。
$ mv config/sunspot.yml config/sunspot.yml.orig
$ rails g sunspot_rails:install
$ mv solr solr_old
検索サーバの設定ファイル config/sunspot.yml を編集します。なお、Tomcatなど外部のアプリケーションサーバでSolrを動作させている場合、ホスト名やポート名も変更してください。
# 変更前
#path: /solr/production
# 変更後
path: /solr/default
検索サーバを再起動します。以下は仮想マシンの例です。
$ bundle exec rake sunspot:solr:start RAILS_ENV=production
利用者グループ名を修正します。
$ rails c production
> group = UserGroup.where(name: 'First group').first
> group.name = 'first_group'
> group.save!
> exit
データベースの内容を更新します。以下のコマンドは、検索サーバ(Solr)を起動させた状態で実行する必要があります。
$ rails g enju_biblio:setup fixture
$ rails g enju_library:setup fixture
$ rails g enju_circulation:setup fixture
$ rails g enju_message:setup fixture
$ bundle exec rake db:migrate RAILS_ENV=production
$ bundle exec rake enju_circulation:migrate_old_checkout RAILS_ENV=production
$ bundle exec rake enju_leaf:upgrade RAILS_ENV=production
注: "rails g ~ " の場合、"Overwrite /xxx/xxx/xxx.yml? (enter "h" for help) [Ynaqdh]" とでることがありますが、その場合は "a" を入力すると次に進みます。
なお、上記の作業後に1.1.0.rc18から1.1.1へのアップデート手順の内容を実行してください。
$ cd your_enju/db/migrate
$ wget https://gist.github.com/nabeta/5972570/raw/1b62a8b461b787a3c536733418da947ad862cddd/20130828014440_rename_patron_to_agent.rb
$ rake db:migrate RAILS_ENV=production
$ cd your_enju
Gemfileを編集します。
gem 'enju_leaf', '~> 1.1.0.rc2'
app/controllers/application_controller.rbを編集します。以下の行を追加します。
private
def mobylette_options
@mobylette_options ||= ApplicationController.send(:mobylette_options).merge(
{
:skip_xhr_requests => false
}
)
end
config/application.ymlを編集します。
defaults: &defaults
enju:
erms_url:
# 以下の2行を追加
skip_mobile_agents:
- ipad
以下のコマンドを実行します。
$ bundle update
$ rake enju_biblio_engine:install:migrations
$ rake enju_subject_engine:install:migrations
$ rake db:migrate
$ rake assets:precompile # production環境の場合
検索サーバとWebサーバを再起動してください。
$ cd enju_leaf
$ git pull origin master
app/controllers/application_controller.rbを編集します。以下の行を追加します。
private
def mobylette_options
@mobylette_options ||= ApplicationController.send(:mobylette_options).merge(
{
:skip_xhr_requests => false
}
)
end
config/application.ymlを削除します。
$ mv config/application.yml config/application.yml.orig
以下のコマンドを実行します。
$ bundle
$ rake enju_biblio_engine:install:migrations
$ rake enju_subject_engine:install:migrations
$ rake db:migrate
$ rake assets:precompile
検索サーバとWebサーバを再起動してください。
1.0.5.rc1以前からのアップデートには、上記の手順に加えて、以下の手順を実行してください。
-
node.jsをインストールします。
-
publicディレクトリのバックアップを必要に応じて取ります。
$ cp -a public public_orig
- config/application.rb の config.assets.enabled を false から true に変更します。
config.assets.enabled = true
- config/environments/production.rb を更新します。メールの送信設定などに変更を加えている場合、コピー後の production.rb に改めて追加します。
$ cp config/environments/production.rb config/environments/production.rb.orig
$ cp config/environments/production.rb.sample config/environments/production.rb
- 配信用のCSS・JavaScript・画像ファイルを作成します。
$ rake assets:precompile
- アップデート用のスクリプトを実行します。
$ rake enju:update:to_1_0_5 RAILS_ENV=production
$ rake enju:copy_config_files
- 定時に実行される処理(cronタスク)を再設定します。
$ cp config/schedule.rb.sample config/schedule.rb
$ vi config/schedule.rb
# line 22. change the path
# eg. set :path, '/home/nabeta/enju_leaf'
set :path, '/path/to/enju_leaf'
$ whenever --update-crontab
設定ファイルをコピーします。
$ git pull origin master
#rubyやrailsのバージョンが異なる場合、Gemfileのバージョンも編集する
#あわせて bundle update を行う
$ rake enju:copy_config_files
#Resque::Helpers will be gone with no replacement in Resque 2.0.0. は無視する
libicu-devをインストールします。
$ sudo yum install libicu-dev # Debian/Ubuntuの場合
$ sudo yum install libicu-devel # Centos/Fedoraの場合
$ brew install icu4c # OSXの場合
$ gem install charlock_holmes --with-icu-dir=/usr
その後は通常のアップデートの手順と同じです。