Skip to content
Kosuke Tanabe edited this page Aug 17, 2024 · 194 revisions

1.4系のアップデート

# Enjuのディレクトリに移動
cd enju_leaf

# コンテナを停止
docker compose down

# 最新のソースコードを取得
# mainブランチを使用する場合、1.4をmainに変更すること
git checkout 1.4
git pull

# ローカルのgemをインストール(開発環境を必要とする場合のみ)
bundle install

# コンテナをビルド
docker compose build

# データベースのマイグレーションを実行(必要な場合のみ)
docker compose run --rm web rake db:migrate

# CSS・JavaScriptのキャッシュを再作成
docker compose run --rm web bundle exec rake assets:precompile

# コンテナを再起動
docker compose up -d

1.3系から1.4系へのアップデート

  • Update-to-1.4を参照してください。
  • 1.4.0-rc.1以前のEnjuをDockerでインストールしていた場合、以下の手順でSolrのボリュームを削除し、インデックスを再作成してください。
$ docker compose down
$ docker volume rm enju_leaf_solr
$ docker compose up -d
$ docker compose run --rm web rake sunspot:reindex

コンテナが起動しない場合

以下のコマンドで出力されるエラーを、issueでお知らせください。

$ docker compose run --rm web rails c

1.3系のアップデート

  • 1.2系から1.3系へのアップデートについては、Update-to-1.3を参照してください。

1.3.1~1.3.3.1から1.3.4以降へのアップデート手順

Gemfileのenju_leafの行を以下のように変更します。

gem 'enju_leaf', '~> 1.3.6'

また、Gemfileに以下の行を追加します。

gem 'enju_inventory', '~> 0.3.1'
gem 'rails-i18n'

Rails 4.x系のころからEnjuをインストールしていてapp/models/application_record.rbが存在しない場合、以下の内容で作成します。

class ApplicationRecord < ActiveRecord::Base
  self.abstract_class = true
end

Rails 5.2を使用している場合、config/environments/production.rbを以下のように変更します。

# 変更前
config.cache_store = :redis_cache_store, { url: ENV['REDIS_URL'], expires_in: 1.day }

# 変更後
config.cache_store = :redis_store, ENV['REDIS_URL'], { expires_in: 1.day }

その後、以下のコマンドを実行し、Enjuを再起動してください。

$ bundle update
$ rake enju_biblio_engine:install:migrations
$ rake enju_inventory_engine:install:migrations
$ rake db:migrate RAILS_ENV=production
$ sudo systemctl restart enju_leaf.target

1.3.0から1.3.1へのアップデート手順

Gemfileを以下のように変更します。

gem 'turbolinks', '~> 5' # この行を削除

app/models/user.rb を以下のように変更します。

変更前:

  devise :database_authenticatable, #:registerable,

変更後:

  devise :database_authenticatable, :registerable,

最後に以下のコマンドを実行し、Enjuを再起動してください。

$ bundle update

1.2系のアップデート

  • Railsのアップデートについては、 UpgradingRails を参照してください。
  • 1.1系でのアップデートについては、Update-1.1を参照してください。
  • 1.1系から1.2系へのアップデートについては、Update-to-1.2を参照してください。

1.2.1から1.2.2へのアップデート手順

Gemfileに以下の行があればそれぞれ削除します。

gem 'statesman', '~> 1.3'
gem 'globalize', '~> 5.0.1'
gem 'globalize-accessors'

app/models/user.rb を以下のように変更します。

変更前:

devise :database_authenticatable, #:registerable,

変更後:

devise :database_authenticatable, :registerable,

config/routes.rb に以下の行があることを確認します。存在しなければ追記してください。

  # 以下 as〜end がなければ追加
  as :user do
    get 'users/edit' => 'devise/registrations#edit', as: 'edit_user_registration'
    put 'users' => 'devise/registrations#update', as: 'user_registration'
  end

  devise_for :users, skip: [:registration]

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

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

rake enju_leaf:load_asset_files タスクで、ヘッダーにロゴが追加され、publicディレクトリにfavicon.icoがコピーされます。

1.2.0から1.2.1へのアップデート手順

  1. 起動スクリプトの修正を行ってください。
  2. 以下のコマンドを実行してください。
$ bundle update
$ rake enju_leaf:upgrade RAILS_ENV=production

起動スクリプトの修正

  1. .envに以下を追記してください。
REDIS_URL=redis://127.0.0.1/enju_leaf
  1. OSにUbuntu 14.04を使用している場合、16.04にアップデートします。
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo do-release-upgrade
  1. 起動スクリプトを修正します。Ubuntu 16.04(systemd)の場合、以下のコマンドを実行してください。
$ sudo foreman export systemd /etc/systemd/system -u vagrant -a enju_leaf
$ sudo systemctl daemon-reload
$ sudo systemctl restart enju_leaf.target