2.1.6 • Published 6 years ago
mongoose-data-seed v2.1.6
mongoose-data-seed
Seed mongodb with data using mongoose models

Install
npm install --save mongoose-data-seed
md-seed initmd-seed init will ask you to choose a folder for your seeders.
md-seed init will create the seeders folder, generate md-seed-config.js and update your package.json.
Use
Generate seeder file
md-seed g usersRun all seeders
md-seed runOr run specific seeders
md-seed run users posts commentsOptions
Drop the database before seeding
md-seed run --dropdbSeeder Example
import { Seeder } from 'mongoose-data-seed';
import { User } from '../server/models';
const data = [
{
email: 'user1@gmail.com',
password: '123123',
passwordConfirmation: '123123',
isAdmin: true
},
{
email: 'user2@gmail.com',
password: '123123',
passwordConfirmation: '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 expecting to get 3 values from md-seed-config.js
seedersList- A key/value list of all your seeders,md-seedwill run your seeders as they ordered in the list.connect- Connect to mongodb implementation (should return promise).dropdb- Drop/Clear the database implementation (should return promise).
Example
import mongoose from 'mongoose';
import Users from './seeders/users.seeder';
import Posts from './seeders/posts.seeder';
import Comments from './seeders/comments.seeder';
const mongoURL = process.env.MONGO_URL || 'mongodb://localhost:27017/dbname';
/**
* Seeders List
* order is important
* @type {Object}
*/
export const seedersList = {
Users,
Posts,
Comments,
};
/**
* Connect to mongodb implementation
* @return {Promise}
*/
export const connect = async () => await mongoose.connect(mongoURL, { useNewUrlParser: true });
/**
* Drop/Clear the database implementation
* @return {Promise}
*/
export const dropdb = async () => mongoose.connection.db.dropDatabase();Configurations
mongoose-data-seed configurations will get loaded from the mdSeed field in your package.json file.
| Field | Default Value | Description |
|---|---|---|
seedersFolder | './seeders' | Path for your seeders-folder, seeders will be generated into this folder. |
customSeederTemplate | undefined | Path to a custom template file to generate your seeders from. |
Examples
License
MIT