Skip to content
Kosuke Tanabe edited this page Nov 9, 2025 · 23 revisions

1.6系へのアップデート

Next-L Enju Leaf 1.6では、PostgreSQLを17に更新しており、このマイグレーション作業が必要になります。

PostgreSQLのバックアップを取得します。-cオプション(リストア時に既存のオブジェクトを削除する)を必ずつけてください。

docker compose run --rm web pg_dump -c -h postgres -U enju enju_leaf_production > tmp/enju_dump.sql

Enjuを停止します。

docker compose down

新しいEnjuを取得します。

git fetch
git checkout 1.6
git pull

コンテナをビルドします。

docker compose build

PostgreSQLのボリューム名を確認します。

docker compose volumes

出力結果のうち、VOLUME_NAMEにpostgresと表示されているのが、PostgreSQLのボリューム名になります。

DRIVER    VOLUME NAME
local     enju_leaf_postgres

PostgreSQLのボリュームを削除します。ボリューム名を指定してください。この操作では古いデータベースを削除しますので、実行前に必ずバックアップを取得しておいてください。

docker volume rm enju_leaf_postgres

PostgreSQLを起動します。

docker compose up -d postgres

PostgreSQLのデータベースを作成します。

docker compose run --rm web bin/rake db:prepare

PostgreSQLのデータをリストアします。

docker compose run --rm web psql -h postgres -U enju enju_leaf_production -f tmp/enju_dump.sql

データベースを更新します。

docker compose run --rm web bin/rake db:migrate

CSSとJavaScriptを作成します。

docker compose run --rm web bin/rake assets:clobber
docker compose run --rm web yarn install
docker compose run --rm web bin/rake assets:precompile

PostgreSQLを停止し、アプリケーションを起動します。

docker compose down
docker compose up -d

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

docker compose run --rm web bin/rake sunspot:reindex

http://localhost:8080 を開き、アクセスできることを確認します。正常に動作することを確認したら、バックアップを削除します。

rm tmp/enju_dump.sql
Clone this wiki locally