Skip to content

davidnghk01/mongoose-data-seed

 
 

Repository files navigation

Build Status Coverage Status PRs Welcome dependencies Status devDependencies Status code style: prettier FOSSA Status MIT License

mongoose-data-seed

Seed mongodb with data using mongoose models

cli example using md-seed run

Install

npm install --save mongoose-data-seed
md-seed init

md-seed init will ask you to choose a folder for your seeders and whether to use ES6/2015 syntax which require babel.

md-seed init will create the seeders folder, generate md-seed-config.js and md-seed-generator.json.

Use

Generate seeder file

md-seed g users

Run all seeders

md-seed run

Or run specific seeders

md-seed run users posts comments

Options

Drop the database before seeding

md-seed run --dropdb

Seeder Example

import { Seeder } from "mongoose-data-seed";
import { User } from "../server/models";

const data = [
  {
    email: "[email protected]",
    password: "123123",
    password_confirmation: "123123",
    isAdmin: true
  },
  {
    email: "[email protected]",
    password: "123123",
    password_confirmation: "123123",
    isAdmin: false
  }
];

class UsersSeeder extends Seeder {
  async shouldRun() {
    return User.countDocuments()
      .exec()
      .then(count => count === 0);
  }

  async run() {
    return User.create(data);
  }
}

export default UsersSeeder;

md-seed-config.js

md-seed excepting to get 3 values from md-seed-config.js

  1. mongoose - The mongoose library (so md-seed will use the same version as your project)
  2. mongoURL - Url to your mongodb
  3. seedersList - A key/value list of all your seeders, md-seed will run your seeders as they ordered in the list.

Example

import mongooseLib from "mongoose";
mongooseLib.Promise = global.Promise;

import Users from "./seeders/users.seeder";
import Posts from "./seeders/posts.seeder";
import Comments from "./seeders/comments.seeder";

// Export the mongoose lib
export const mongoose = mongooseLib;

// Export the mongodb url
export const mongoURL =
  process.env.MONGO_URL || "mongodb://localhost:27017/dbname";

/*
  Seeders List
  ------
  order is important
*/
export const seedersList = {
  Users,
  Posts,
  Comments
};

Examples

  1. md-seed-example-es2015-babel
  2. md-seed-example-es5

License

MIT

FOSSA Status MIT License

About

Seed mongodb with data using mongoose models

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%