EC-CUBE 4.0.3 が 2019 年 9 月 5 日にリリースされました。
2019 年 10 月の消費税 10% への増税を見据えた、軽減税率に関する対応が含まれています。
OpenBSD にインストールしていた EC-CUBE を 4.0.2 -> 4.0.3 にアップデートした手順を記します。(実施したのは 2019 年 11 月です。)
公式ドキュメントをもとにしています。
環境
- OS: OpenBSD 6.6 amd64
- Web サーバー: OpenBSD httpd
- AP サーバー: PHP 7.3 + PHP-FPM
- カートシステム: EC-CUBE 4.0.2 -> 4.0.3
- DB: MariaDB 10.0
4.0.2 -> 4.0.3 変更ファイル一覧
Github で Tag 間の差分を見ることで確認できます:
https://github.com/EC-CUBE/ec-cube/compare/4.0.2...4.0.3?w=1#files_bucket:
差分を整理して、手順用の一覧メモを作成しました:
# changelogs
app/DoctrineMigrations
app/config/eccube
src/Eccube/
html/template
maintenance.php
web.config
symfony.lock
# 4.0.2 -> 4.0.3 specific
.htaccess
composer.json
composer.lock
index.php
# ignored:
.dockerignore
.github/CONTRIBUTING.md
.github/ISSUE_TEMPLATE.md
.github/PULL_REQUEST_TEMPLATE.md
.gitignore
.php_cs.dist
.travis.yml
Dockerfile
LICENSE.txt
dockerbuild/
README.md
tests/Eccube/
tests/bootstrap.php
codeception.sh
codeception/
app/Plugin/AnnotatedRouting
app/Plugin/EntityExtension
app/Plugin/EntityForm
app/Plugin/FormExtension
app/Plugin/HogePlugin
app/Plugin/MigrationSample
app/Plugin/PurchaseProcessors
app/Plugin/QueryCustomize
アップデート手順
1. メンテナンスモードを有効にする
$ touch %eccube-dir%/.maintenance
2. サイトのバックアップ
$ mkdir %backup-dir%/eccube4.0.2-`date '+%Y%m%d'`
$ mysqldump -d %database% -u %dbuser% -h %dbhost% -p > %backup-dir%/eccube4.0.2-database-backup.sql
$ cp -rp %eccube-dir% %backup-dir%/eccube-4.0.2
$ # check
$ ls -l %backup-dir%
3. EC-CUBEのソースファイルをバージョンアップしたものに置き換え
$ ftp http://downloads.ec-cube.net/src/eccube-4.0.3.zip
$ unzip eccube-4.0.3.zip -d ~
/home/%my-user%/eccube-4.0.3/...
$ cd %eccube-dir%
$ for x in \
'app/DoctrineMigrations' \
'app/config/eccube' \
'src/Eccube' \
'html/template' \
'dockerbuild' \
'bin' \
'vendor' \
;
echo $x;
doas rm -rf $x;
doas -u www mkdir -p $x;
doas -u www cp -r ~/eccube-4.0.3/$x/* ./$x;
if [ $x = 'vendor' ]; doas chown -R %my-user%: ./$x; end;
end
4. 個別ファイル差し替え
$ for x in \
'composer.json' \
'composer.lock' \
'.htaccess' \
'index.php' \
; \
echo $x; \
doas -u www cp -f ~/eccube-4.0.3/$x ./$x; \
if [ $x = 'composer.json' ]; doas chown %my-user%: ./$x; end; \
if [ $x = 'composer.lock' ]; doas chown %my-user%: ./$x; end; \
end
$ for x in \
'maintenance.php' \
'web.config' \
'.dockerignore' \
'Dockerfile' \
; \
echo $x; \
doas rm -rf $x; \
doas -u www cp ~/eccube-4.0.3/$x ./$x; \
end
5. composer.json/composer.lockの更新
$ doas -u www php-7.3 bin/console cache:clear --no-warmup
[WARNING] Some commands could not be registered:
In EntityProxyService.php line 46:
Type error: Too few arguments to function Eccube\Service\EntityProxyService::__construct(),
1 passed in /var/www/sites/wanpaku-kozo.com/web/sale/eccube/var/cache/prod/ContainerZjohjxh/
getEntityProxyServiceService.php on line 10 and exactly 2 expected
// Clearing the cache for the prod environment with debug false
[OK] Cache for the "prod" environment (debug=false) was successfully cleared.
6. スキーマ更新/マイグレーション
$ php-7.3 bin/console doctrine:schema:update --force --dump-sql
gen -> /tmp//proxy_WNS2tQvnvfyf/Customer.php
gen -> /tmp//proxy_WNS2tQvnvfyf/Customer.php
The following SQL statements will be executed:
ALTER TABLE ...
[...]
Updating database schema...
35 queries were executed
[OK] Database schema updated successfully!
$ php-7.3 bin/console doctrine:migrations:migrate
Application Migrations
WARNING! You are about to execute a database migration that could result in schema changes and data loss. Are you sure you wish to continue? (y/n)y
Migrating up to
[...]
++ migrated (1.13s)
------------------------
++ finished in 1.19s
++ 3 migrations executed
++ 2 sql queries
7. プロキシの再生成
4.0.3 へのバージョンアップ時のみ、プロキシの再生成が必要です。
$ doas rm -f app/proxy/entity/*.php
$ php-7.3 /usr/local/libexec/composer.phar dump-autoload
Deprecation warning: require-dev.mikey179/vfsStream is invalid, it should not contain uppercase characters. Please use mikey179/vfsstream instead. Make sure you fix this as Composer 2.0 will error.
Generated optimized autoload files containing 5542 classes
$ php-7.3 bin/console eccube:generate:proxies
$ php-7.3 bin/console cache:warmup --env=prod
8. フロントテンプレートファイルの更新
対象はありませんでした:
https://github.com/EC-CUBE/ec-cube/pulls?q=is%3Apr+label%3Aaffected%3Atemplate+is%3Aclosed+milestone%3A4.0.3
9. メンテナンスモードを無効にする
$ rm .maintenance
10. その他
4.0.2 -> 4.0.3 のアップデートには特記事項があります:
- 軽減税率制度に関する対応 を利用する場合, 差分 の適用が必要です。 ※合わせて 注意点 もご確認下さい。
- PDFのロゴ画像変更 を利用する場合, 差分 の適用が必要です。
- 複数ファイルのアップロード を利用する場合, 差分 の適用が必要です。