0

I'm following tutorial about sequelize-cli: https://andela.com/insights/using-graphql-and-sequelize/

And I'm getting an err: 'sequelize.import is not a function'

it's coming from models/index.js (which should bundle all models)

'use strict';

const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.json')[env];
const db = {}; 

// Set DB Connection
let sequelize;
if (config.use_env_variable) {
  sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
  sequelize = new Sequelize(config.database, config.username, config.password, config);
}

// Import model files in models folder and make table associations where present
fs
  .readdirSync(__dirname)
  .filter(file => {
    return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
  })
  .forEach(file => {
    const model = sequelize['import'](path.join(__dirname, file));
    db[model.name] = model;
  });

Object.keys(db).forEach(modelName => {
  if (db[modelName].associate) {
    db[modelName].associate(db);
  }
});

db.sequelize = sequelize;

I was searching solution online but whatever I saw it didnt work.

Any ideas??

kasia
  • 288
  • 2
  • 6
  • 23

1 Answers1

0

OK solved!

I havent realized that

  .forEach(file => {
    const model = sequelize['import'](path.join(__dirname, file));
    db[model.name] = model;
  });

was in the same location so the correct answer was:

  .forEach(file => {
    db[model.name] = file
  });
kasia
  • 288
  • 2
  • 6
  • 23