sequelize.import is not a function

The error is caused by using the sequelize import object. Instead you should use Node’s built in CommonJS require function. So change this line in your models/index.js:

const model = sequelize['import'](path.join(__dirname, file))

to:

const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes)

You can also just regenerate the models directory and readd your models without the old index.js if you find that easier:

mv models models.bak && sequelize init:models && mv models.bak/index.js models.bak/index.js.bak && mv models.bak/* models/ && rm models.bak

That one liner will fix your problem if you have sequelize-cli installed globally. If you don’t you can use this one:

npm i --save-dev sequelize-cli && mv models models.bak && npx sequelize init:models && mv models.bak/index.js models.bak/index.js.bak && mv models.bak/* models/ && rm models.bak

You may also need to update your config folder. I use a JavaScript config to inject ENVs, so I had to add to change my const config = require(... line to reflect that. If you used one of my one liners your old models/index.js file is now at index.js.bak if you need to grab any custom stuff from it.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)