Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // common/models/utils/utils/database-seeding.js
- 'use strict';
- const mongoose = require('mongoose');
- const isDev = process.env.NODE_ENV === 'prod';
- const DataSourceSchema = new mongoose.Schema({
- _id: String,
- host: String,
- port: String,
- database: String,
- password: String,
- name: String,
- user: String,
- clientCode: String,
- connector: String,
- protocol: String
- })
- const DataSources = mongoose.model('Datasources', DataSourceSchema);
- const params = {
- password: process.env.MONGO_PASSWORD,
- username: process.env.MONGO_USERNAME,
- port: process.env.MONGO_PORT1,
- host: process.env.MONGO_HOST1,
- clusterName: process.env.REPLICA_NAME,
- queryStringParams: 'authSource=admin'
- };
- const options = {
- useNewUrlParser: true,
- reconnectTries: Number.MAX_VALUE,
- reconnectInterval: 500,
- connectTimeoutMS: 10000,
- };
- const seedDatabase = () => {
- let clients = process.env.CLIENTS;
- return new Promise(async (resolve, reject) => {
- const mongoUrl = `mongodb://${params.username}:${params.password}@${params.host}:${params.port}/etd?replicaSet=${params.clusterName}&${params.queryStringParams}`;
- console.log('****************------------------------------------MONGOURL-------------------------***********************************************');
- console.log(mongoUrl);
- console.log('****************------------------------------------MONGOURL------------------------***********************************************');
- await mongoose.connect(mongoUrl, options);
- const clientsList = clients.split(',');
- const dataSources = createDatasourceObjects(clientsList);
- console.log('****************------------------------------------DATASOURCES-------------------------***********************************************');
- console.log(dataSources);
- console.log('****************------------------------------------DATASOURCES------------------------***********************************************');
- for (let i = 0; i < dataSources.length; i++) {
- let datasource = await DataSources.findOne({ _id: dataSources[i]._id });
- if (datasource) {
- //datasource = datasource.toJSON();
- delete dataSources[i]._id;
- const ds = Object.assign(datasource, dataSources[i]);
- console.log('-----------------DS UPDATED (1) --------------------------');
- console.log(ds);
- ds.save();
- console.log('-----------------DS UPDATED (1)--------------------------');
- } else {
- datasource = new DataSources(dataSources[i]);
- console.log('-----------------DS SAVED (1) --------------------------');
- console.log(datasource);
- datasource.save();
- console.log('-----------------DS SAVED (1)--------------------------');
- }
- }
- resolve();
- });
- };
- const createDatasourceObjects = clientsList => {
- return clientsList.map(client => {
- return {
- _id: `${client}${isDev ? '_stg_etd': ''}`,
- host: params.host,
- port: params.port,
- database: `${client}${isDev ? '_stg_etd': ''}`,
- password: params.password,
- name: `${client}${isDev ? '_stg_etd': ''}`,
- user: params.username,
- clientCode: client.substring(0, 3).toUpperCase(),
- connector: 'mongodb',
- protocol: 'mongodb+srv'
- }
- })
- };
- module.exports = {
- seedDatabase
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement