php artisan migrateを行うと以下のエラーが発生してmigrateできない!
LaravelのバージョンとPHPのバージョンの間に不整合があるため実行できないというエラーが発生しています。
(現在のバージョン8.2)
PHP 8.0にグレードダウンするためPHP 8.0をインストールする
brew install php@8.0
シンボリックリンクを変更して、デフォルトのPHPバージョンとして設定
brew link --overwrite --force php@8.0
PHPのバージョンを確認
php -v
アプリのディレクトリに移動しmigrateを行う
php artisan migrate
何故か以下のようにバージョン8.1以上を求められた
そこでバージョン8.1に変更してみましたが8.2の時と同じエラーが発生してしまいました。どういうこと?
利用可能なPHPのバージョンを確認
braw search php
PHP 8.1: 現在インストールされており、アクティブになっているバージョンです。 (php@8.1 ✔ により示されています)
PHP 8.0: インストールされていますが、現在はアクティブではありません。(php@8.0 ✔ により示されています)
PHP 7.4: インストールされているバージョンです。(php@7.4 により示されています)
PHP 7.1, 7.0, 5.6: これらは非推奨としてマークされたバージョンです。
ある依存パッケージがPHP 8.1を要求している一方、Laravel自体はPHP 8.1に完全に対応していないために起こっているようだったのでPHP 8.0を使用する必要があるので以下を実行。
composer.lockとvendorディレクトリを削除
rm composer.lock
rm -rf vendor/
Composerの依存関係を更新
このとき、PHP 8.0をターゲットとして指定します。
composer update --ignore-platform-reqs
--ignore-platform-reqsオプションは、現在の環境のPHPバージョンを無視して依存関係を解決します。これにより、PHP 8.1を要求するパッケージがインストールされるのを防ぎます。
再びmigrateを行う
php artisan migrate
この手順で、PHP 8.0の環境でLaravelのマイグレーションができます。
参考