-
Notifications
You must be signed in to change notification settings - Fork 2
/
seeder.js
72 lines (54 loc) · 1.61 KB
/
seeder.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
const mongoose = require('mongoose')
const dotenv = require('dotenv')
dotenv.config({path: './config/config.env'})
const Users = require('./db/models/userModel');
const LoanRequest = require('./db/models/LoanRequestModel');
const Contracts = require('./db/models/contractModel');
const Review = require('./db/models/ReviewModel')
//Connect DB
mongoose.connect( process.env.MONGODB_URI , {
useUnifiedTopology: true,
useNewUrlParser : true,
useCreateIndex : true,
useFindAndModify : false
})
let loans = require('./seeder_data/loan_data.json')
let users = require('./seeder_data/user_data.json')
let contracts = require('./seeder_data/contract_data.json')
let reviews = require('./seeder_data/review_data.json')
//Import data to database
const importData = async () =>{
try {
await Users.create( users );
await LoanRequest.create( loans );
await Contracts.create( contracts );
await Review.create( reviews );
console.log('Data Imported...');
process.exit()
}
catch(err ){
console.error(err)
}
}
//Delete data
const deleteData = async()=>{
try {
const collections = await mongoose.connection.db.collections()
for (let collection of collections) {
await collection.deleteMany()
}
console.log('Data Deleted...');
process.exit()
}
catch(err ){
console.error(err)
}
}
if( process.argv[2] === '-i' ){
importData();
}else if( process.argv[2] === '-d'){
const db = mongoose.connection
db.once('open', () =>{
deleteData();
})
}