XXとしてる
2019年3月28日木曜日
SequelizeのバージョンをV5に上げたときの話
SequelizeのバージョンがV5に上がっていたのでアップグレートしたときの話をつらつらと書いていく。 ## yarn upgrade そもそもアップグレートすることが初体験なので、パッケージ管理ツールの使い方も知らない状態だった。 とりあえず、以下のコマンドでアップグレードした。 ```bash yarn upgrade sequelise@^5.2.1 ``` が、以下のようでもいい。 ```bash yarn upgrade sequelize --latest ``` 上のコマンドで最新のバージョンが使われるようになる(--latest)。 はじめのものはバージョン指定したもので、`^`(caret)はメジャーバージョンを変えない範囲でアップグレードをすることを示している。 要は、@^3.1.2なら3.1.2<= 〜 <4.0.0範囲のバージョンが使われるとのこと [yarn caret-ranges](https://yarnpkg.com/lang/en/docs/dependency-versions/#toc-caret-ranges) これで無事アップグレートができた ## DeprecationWarning: A boolean value was passed to options.operatorsAliases. This is a no-op with v5 and should be removed. SequelizeV5からSequelizeインスタンスを作成するときに比較演算などの演算子には必ず別名をつけることを推奨するようになっている。 これはセキュリティ的な問題で実際に使用する演算子だけをインスタンス生成時に別名として指定することで、攻撃者が好き勝手な演算子を使えなくする効果がある。 ```js //アプリで使っている演算子だけを別名定義する const usedOperatorsAliases = { $and: Sequelize.Op.and, $or: Sequelize.Op.or, } const sequelize = new Sequelize('database', { operatorsAliases: usedOperatorsAliases }) const model = Sequelize.define(...) model.findOne({ where: { $or: ... $and: ... } }) ``` いちいち定義するのがめんどくさいなら、[公式ドキュメントのOperators security](http://docs.sequelizejs.com/manual/querying.html#operators)からコピペするといい Sequelize CLIの方はまだ対応していないみたいなのでこの警告が出ている。 だけど開発用に使用するだけなので、全ての演算子の別名を指定する形で問題はないかと思う。 ## 終わり
アップグレート完了!
思いの外、修正する部分が少なく助かった
(画像は以下のものを使用させていただきました。)
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿