thexyman
thexyman

Reputation: 591

sequelize migrations not running

I'm having a weird issue with Sequelize I haven't encountered before, when I try to run my migrations nothing happens. I get the following output:

Loaded configuration file "config\config.json"
Using environment "development"

And the program just exists back.

I've checked my code multiple times over and everything checks out.

Model code:

module.exports = {
up: (queryInterface, Sequelize) => {
    return queryInterface.createTable("users", {
        id: {
            allowNull: false,
            autoIncrement: true,
            primaryKey: true,
            type: Sequelize.INTEGER
        },
        username: {
            type: Sequelize.STRING,
            unique: true,
            allowNull: false,
            validate: {
                notEmpty: true
            }
        },
        email: {
            type: Sequelize.STRING,
            unique: true,
            allowNull: false,
            validate: {
                notEmpty: true,
                isEmail: true
            }
        },
        password: {
            type: Sequelize.STRING,
            allowNull: false,
            validate: {
                notEmpty: true,
                len: [7, 42]
            }
        },
        createdAt: {
            type: Sequelize.DATE
        },
        updatedAt: {
            type: Sequelize.DATE
        }
    })
},
down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable("users")
}

}

And here is a snippet from my model/index.js:

const fs = require("fs")
const path = require("path")
const Sequelize = require("sequelize")

const basename = path.basename(__filename)
const env = process.env.TEST_ENV || "development"
const config = require(`${__dirname}/../config/config.js`)[env]
const db = {}

console.log('config', config)

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
    )
}

It's almost like sequelize just isn't picking up any of migrations file. I'm not sure how I should troubleshoot this. Any help on this would be much appreciated.

Upvotes: 16

Views: 15579

Answers (4)

Leon Matota
Leon Matota

Reputation: 417

I ran into this issue as well after updating my node version from 12.16.2 to 14.15.4, suddenly the migrations stopped working with no error message being displayed. To fix this, simply run:

npm install pg@latest

According to pg's documentation, to use node version >= 14.x you will need to install [email protected] or later due to some internal stream changes on the node 14 branch.

For further reading, look at pg's official documentation here.

Upvotes: 7

Victor Karangwa
Victor Karangwa

Reputation: 2216

Updating pg fixed the issue on my end.

npm install --save pg@latest

Upvotes: 20

Yoga Altariz
Yoga Altariz

Reputation: 42

try to run this command in your terminal sequelize db:migrate:all

Upvotes: -3

thexyman
thexyman

Reputation: 591

So the issue was with node versions.

I probably should have provided more context to start of with but I switched laptops and on new laptop I had version 14.1.0 installed whereas on old laptop I had version 10.13.0 installed!. So switching versions did the trick.

Upvotes: 28

Related Questions