seedgooseについて
最近ポケモン関連のアプリを作成していて、ポケモン達の画像のurlをmongodbに保存しています。
なので、手軽に大量のデータをseedできるプラグインないかなーって探してたらこのプラグインを見つけて
簡単に実現できたので、備忘録として書きます。
設定より規約の思想で作られているため、多少注意点などありますのでそれも説明していきます。
git
seedgoose
執筆時点では星は9個しかついてないです。
ですが、かなりお手軽にできるのでおすすめです。
導入
npm i seedgoose
package.jsonにnpm scriptを追加します。
npm run seed
でseedを流す事ができるようになります。
"scripts": {
"seed": "seedgoose seed"
}
ディレクトリ構成
※必ず、以下のようにmongooseで定義したmodelの名前を複数形にしたjsonファイルをdataフォルダの配下に作成する必要があります。
─ data
├── pokemons.json
[
{
"_id": "11111111111",
"pokedex" : "1",
"imageUrl": "https://hogehoge.1.png",
"name": ""
},
{
"_id": "22222222222222",
"pokedex": "865",
"imageUrl": "https://hogehoge.865.png",
"name": ""
}
]
const mongoose = require("mongoose");
const Pokemon = mongoose.model(
"Pokemon",
new mongoose.Schema({
name: {
type: String
},
pokedex: {
type: String
},
imageUrl: {
type: String
}
})
);
module.exports = { Pokemon };
つづいて設定ファイルを作成します。
※必ずファイル名は.seedgooserc.js
として下さい。
require("dotenv").config({ path: ".env" });
module.exports = {
modelBaseDirectory: "./models",
models: "*.js",
data: "data",
db: process.env.MONGO_URI
};
seed実行
上記のファイルの作成が終わったら以下のコマンドでseedを実行します。
npm run seed
以下のように表示されていれば正常にデータが生成されています。
create 11111111111 in pokemons
seedをやり直したい場合や、削除したい場合は、npm scriptに以下のように書けばいけるようです。
"scripts": {
"seed": "seedgoose seed",
"reseed": "seedgoose reseed",
"unseed": "seedgoose unseed"
}
ここまで読んでくださりありがとうございます。
すごくシンプルで使いやすいプラグインだと思いますのでぜひ使ってみてください。
それでは!