Sequelize CLI migration error: Cannot access property of undefined (specifically 'details')
P粉463418483
P粉463418483 2023-11-04 23:07:03
0
2
614

I'm runningnpx Sequelize-cli db:migratewhich creates the table in the database and returns the following message:

Sequelize CLI [Node: 18.9.1, CLI: 6.5.1, ORM: 6.20.1] ERROR: Cannot find "/src/db/migrations/config/config.json". Have you run "sequelize init"? ERROR: Cannot read properties of undefined (reading 'detail') sequelize-cli db:migrate Run pending migrations

But I have already run the command sequelize-init...

This is my config.js file

import dotenv from "dotenv"; dotenv.config(); export default { development: { username: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, host: process.env.DB_HOST, port: process.env.DB_PORT, dialect: process.env.DB_DIALECT, logging: true, }, test: { username: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, host: process.env.DB_HOST, dialect: process.env.DB_DIALECT, }, production: { username: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, host: process.env.DB_HOST, dialect: process.env.DB_DIALECT, }, };

My migration file:

"use strict"; /** @type {import('sequelize-cli').Migration} */ module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable("Users", { id: { type: Sequelize.INTEGER, allowNull: false, autoIncrement: true, primaryKey: true, }, name: { type: Sequelize.STRING(50), allowNull: false, }, birth_date: { type: Sequelize.DATEONLY, allowNull: false, }, email: { type: Sequelize.STRING(62), allowNull: false, }, phone: { type: Sequelize.STRING(20), allowNull: false, }, address: { type: Sequelize.STRING(100), allowNull: false, }, password: { type: Sequelize.STRING(100), allowNull: false, }, position_id: { type: Sequelize.INTEGER, allowNull: false, references: { model: "Position", key: "id", }, }, is_active: { type: Sequelize.BOOLEAN, allowNull: false, }, is_admin: { type: Sequelize.BOOLEAN, allowNull: false, }, created_at: { type: Sequelize.DATE, allowNull: false, }, updated_at: { type: Sequelize.DATE, allowNull: false, }, }); }, async down(queryInterface, Sequelize) { await queryInterface.dropTable("Users"); }, };

My .sequelizerc file:

import path from "path"; export default { config: path.resolve("config", "config.js"), };

and my package.json file:

{ "name": "startbootstrap-sb-admin-2-gh-pages", "version": "1.0.0", "description": "", "main": "gulpfile.js", "scripts": { "test": "test", "dev": "nodemon src/server.js" }, "type": "module", "author": "", "license": "ISC", "dependencies": { "connect-flash": "^0.1.1", "cookie-parser": "^1.4.6", "dotenv": "^16.0.3", "ejs": "^3.1.8", "express": "^4.18.1", "express-ejs-layouts": "^2.5.1", "express-session": "^1.17.3", "http": "^0.0.1-security", "http-error": "^0.0.6", "morgan": "^1.10.0", "mysql2": "^2.3.3", "nodemon": "^2.0.16", "path": "^0.12.7", "sequelize": "^6.20.1" }, "devDependencies": { "sequelize-cli": "^6.5.1" } }

I want to perform migration but can't succeed, even if I change the config file to json, the error still exists...

P粉463418483
P粉463418483

reply all (2)
P粉551084295

In the models/index.js file, you need to update config.json to config.js

    P粉098417223

    In config/config.js,

    • Have you tried usingcont dotenv = require('dotenv');instead ofimport dotenv from "dotenv";?

    • Replaceexport defaultwithmodule.exports =?

      Latest Downloads
      More>
      Web Effects
      Website Source Code
      Website Materials
      Front End Template
      About us Disclaimer Sitemap
      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!