別案件でLaravelから1ヶ月半ほど離れて戻ってきたところ、Laravel6.0がリリースされていました。
laravel 6.0 アップグレードガイド
ver5.5以来のLTSということで、つい3ヶ月ほど前にver5.8で作成したプロジェクトも早速6.0にアップグレードすることにしました。
初めてLaravelのバージョンアップ作業を行うので、メモ代わりに作業の流れを書きました。
面倒な感じになるかと思いきや、簡単にバージョンアップできて驚きました。
とりあえずやってみる
バージョンアップの方法ですが、composer.jsonの laravel/framework
のバージョンを引き上げて composer update
するらしいです。
(え、それだけ?)
早速やってみます。
PHPのバージョンも7.2以降が必要とのことなので一緒に修正。
"require": {
- "php": "^7.1.3",
- "laravel/framework": "5.8.*",
+ "php": "^7.2",
+ "laravel/framework": "^6.0",
}
↓
composer update
実行
↓
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Conclusion: don't install laravel/framework v6.0.4
- Conclusion: don't install laravel/framework v6.0.3
- Conclusion: don't install laravel/framework v6.0.2
- Conclusion: don't install laravel/framework v6.0.1
- Conclusion: don't install laravel/framework v6.0.0
...以下延々とエラーメッセージ
そう簡単にはいかんか(´・ω・`)
パッケージの整理
調べてみると、エラーのこの部分が肝のよう。
- Installation request for laravel/framework ^6.0 -> satisfiable by laravel/framework[6.x-dev, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4].
- Installation request for laralib/l5scaffold ^1.0 -> satisfiable by laralib/l5scaffold[1.0, 1.0.1, 1.0.10, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.0.7, 1.0.8, 1.0.9].
当プロジェクトではスキャフォールドを行うためにlaralib/l5scaffoldというパッケージを入れていたのですが、これがver6.0に非対応ということでした。
こちらのパッケージを一旦composer.jsonから削除して再度実行します。
すると今度は
- Installation request for laravel/framework ^6.0 -> satisfiable by laravel/framework[6.x-dev, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4].
- Installation request for laravelcollective/html ^5.8 -> satisfiable by laravelcollective/html[5.8.x-dev, v5.8.0, v5.8.1].
laravelcollectiveで怒られたので修正。
こちらは6.0対応のバージョンが出ていたのでバージョンを ^5.8
から ^6.0
に書き換えました。
再び実行。
composer update
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 3 updates, 1 removal
- Removing laralib/l5scaffold (1.0.10)
- Updating monolog/monolog (1.25.1 => 2.0.0): Downloading (100%)
- Updating laravel/framework (v5.8.35 => v6.0.4): Downloading (100%)
- Updating laravelcollective/html (v5.8.1 => v6.0.2): Downloading (100%)
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: barryvdh/laravel-debugbar
Discovered Package: beyondcode/laravel-dump-server
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: laravelcollective/html
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Discovered Package: olssonm/l5-very-basic-auth
Package manifest generated successfully.
お、通りましたね。
バージョン確認してみましょう。
php artisan --version
Laravel Framework 6.0.4
そう簡単に…いったわ(・ω・*)
まとめ
・バージョンアップ自体は非常に簡単
・laravel/framework以外の各パッケージのバージョンもちゃんと確認しようね
という、それだけでした。
ここからテスト走らせるなどしてバージョンアップの影響出ていないか確認していきます。
スキャフォールドのパッケージはアプデ待ちか代替パッケージ探しが必要そうですね(´・ω・`)