Overview
このページでは、Lambda MongoDB を新しいメジャー バージョンにアップグレードする方法を学びます。 このページには、該当する場合、機能を失うことなくオブジェクト ドキュメント マッパー(ODM)バージョンをアップグレードするためにアプリケーションに加える必要がある変更も含まれています。
アップグレード方法
アップグレードする前に、次のアクションを実行してください。
新しいライブラリのバージョンが、アプリケーションが接続するMongoDB Server のバージョン、およびアプリケーションを実行する Lambda のバージョンと互換性があることを確認します。この情報については、 の互換性 ページを参照してください。
このガイドの「 重大な変更 」セクションで、アプリケーションが現在使用している Lambda 統合のバージョンと計画されているアップグレード バージョンとの間の重大な変更に対処します。
ライブラリのバージョンをアップグレードするには、アプリケーションの ディレクトリで次のコマンドを実行します。
composer require mongodb/laravel-mongodb:4.8
ライブラリの別のバージョンにアップグレードするには、 laravel-mongodb:の後の情報をご希望のバージョン番号に置き換えます。
重大な変更
重大な変更とは、アプリケーションが期待どおりに動作するのを妨げる可能性のある Lambda 統合の特定のバージョンにおける 規則 または 動作の変更です。
このセクションの重大な変更は、それを導入したメジャー バージョン リリースによって分類されます。 ライブラリのバージョンをアップグレードするときは、現在のバージョンと計画されているアップグレード バージョン間のすべての重大な変更に対処してください。
バージョン 4.x の重大な変更
このライブラリ バージョンでは、次の重大な変更が導入されています。
Lambda の最小バージョンは 10.0 になりました。Lambel のバージョンをアップグレードする手順については、Lambel ドキュメントの「 アップグレード ガイド 」を参照してください。
依存関係名が
"mongodb/laravel-mongodb"になりました。composer.jsonファイル内の依存関係名が"mongodb/laravel-mongodb": "^4.0"であることを確認します。 次に、composer updateを実行します。名前空間は
MongoDB\Laravel\になりました。 モデルと構成ファイルで、名前空間がJenssegers\Mongodb\からMongoDB\Laravel\に変更されていることを確認してください。Lambda 以外のプロジェクトのサポートを廃止します。
$datesプロパティのサポートを廃止します。 モデル ファイルで、$datesのすべてのインスタンスを$castsに変更していることを確認します。Model::unset($field)は変更を保持しません。Model::unset($field)を使用してModel::save()へのすべての呼び出しに従うようにしてください。Query\Builder::whereAll($column, $values)メソッドを削除します。Query\Builder::whereAll($column, $values)へのすべての呼び出しをQuery\Builder::where($column, 'all', $values)に置き換えてください。Query\Builder::delete()は、1 つまたはすべてのドキュメントを削除できます。1またはnullの値のみをlimit()に渡すようにしてください。whereDate()、whereDay()、whereMonth()、whereYear()、whereTime()メソッドは、日付フィールドで MongoDB 演算子を使用するようになりました。MongoDB\Laravel\Eloquent\MassPrunable特性を追加します。 モデル内で、Illuminate\Database\Eloquent\MassPrunableのすべてのインスタンスをMongoDB\Laravel\Eloquent\MassPrunableに置き換えることを確認します。次の
Query\Builderメソッドのサポートを廃止します。toSql()toRawSql()whereColumn()whereFullText()groupByRaw()orderByRaw()unionAll()union()having()havingRaw()havingBetween()whereIntegerInRaw()orWhereIntegerInRaw()whereIntegerNotInRaw()orWhereIntegerNotInRaw()