Im working on a project that uses Nodejs and nextjs. Also, Im using sequelize. I tried to create a sectionModel for sectionEditorModel. At first, sequelize created the table without the association, thus I dropped the table from MySQL workbench. Now, it doesn't create the table for section anymore. Any guesses why this happens? My code:
const Sequelize = require("sequelize");
const sequelize = require("../util/database");
const SectionEditor = require("./UserModels/sectionEditorModel");
const Section = sequelize.define("section", {
idSection: {
type: Sequelize.INTEGER,
autoIncrement: true,
allowNull: false,
primaryKey: true,
},
name: {
type: Sequelize.STRING,
allowNull: false,
},
});
Section.hasMany(SectionEditor, {
foreignKey: { name: "idSection", unique: true },
sourceKey: "idSection",
primaryKey: true,
});
SectionEditor.belongsTo(Section, {
foreignKey: "idSection",
targetKey: "idSection",
});
module.exports = Section;
and
const Sequelize = require("sequelize");
const sequelize = require("../../util/database");
const User = require("./userModel");
const SectionEditor = sequelize.define("sectioneditor", {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
allowNull: false,
primaryKey: true,
},
});
module.exports = SectionEditor;
and
const path = require("path");
const express = require("express");
const bodyParser = require("body-parser");
const sequelize = require("./util/database");
const multer = require('multer');
const fileStorage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, 'files');
},
filename: (req, file, cb) => {
cb(null, new Date().toISOString() + '-' + file.originalname);
}
});
const fileFilter = (req, file, cb) => {
if (
file.mimetype === 'file/pdf') {
cb(null, true);
} else {
cb(null, false);
}
};
const app = express();
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, "public")));
app.use(multer({ storage: fileStorage, fileFilter: fileFilter }).single('paperFile')); //expects one file
sequelize.sync( {force: true});
app.use((req, res, next) => {
res.setHeader("Access-Control-Allow-Origin", "http://localhost:3000");
res.setHeader(
"Access-Control-Allow-Methods",
"OPTIONS, GET, POST, PUT, PATCH, DELETE"
);
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
next();
});
const authRouter = require("./routes/authRouter");
const userRouter = require("./routes/userRouter");
const reviewerRouter = require("./routes/reviewerRouter");
app.use("/auth", authRouter);
app.use("/user", userRouter);
app.use("/reviewer", reviewerRouter);
app.listen(8000);
also my terminal when I try to start server:
Executing (default): DROP TABLE IF EXISTS `sectioneditors`;
Executing (default): DROP TABLE IF EXISTS `selectionassistanteditors`;
Executing (default): DROP TABLE IF EXISTS `vicepresidents`;
Executing (default): DROP TABLE IF EXISTS `chiefeditors`;
Executing (default): DROP TABLE IF EXISTS `grades`;
Executing (default): DROP TABLE IF EXISTS `reviewers`;
Executing (default): DROP TABLE IF EXISTS `users`;
Executing (default): SELECT CONSTRAINT_NAME as constraint_name,CONSTRAINT_NAME as constraintName,CONSTRAINT_SCHEMA as constraintSchema,CONSTRAINT_SCHEMA as constraintCatalog,TABLE_NAME as tableName,TABLE_SCHEMA as tableSchema,TABLE_SCHEMA as tableCatalog,COLUMN_NAME as columnName,REFERENCED_TABLE_SCHEMA as referencedTableSchema,REFERENCED_TABLE_SCHEMA as referencedTableCatalog,REFERENCED_TABLE_NAME as referencedTableName,REFERENCED_COLUMN_NAME as referencedColumnName FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE where TABLE_NAME = 'grades' AND CONSTRAINT_NAME!='PRIMARY' AND CONSTRAINT_SCHEMA='review-platform' AND REFERENCED_TABLE_NAME IS NOT NULL;
Executing (default): SELECT CONSTRAINT_NAME as constraint_name,CONSTRAINT_NAME as constraintName,CONSTRAINT_SCHEMA as constraintSchema,CONSTRAINT_SCHEMA as constraintCatalog,TABLE_NAME as tableName,TABLE_SCHEMA as tableSchema,TABLE_SCHEMA as tableCatalog,COLUMN_NAME as columnName,REFERENCED_TABLE_SCHEMA as referencedTableSchema,REFERENCED_TABLE_SCHEMA as referencedTableCatalog,REFERENCED_TABLE_NAME as referencedTableName,REFERENCED_COLUMN_NAME as referencedColumnName FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE where TABLE_NAME = 'reviewers' AND CONSTRAINT_NAME!='PRIMARY' AND CONSTRAINT_SCHEMA='review-platform' AND REFERENCED_TABLE_NAME IS NOT NULL;
Executing (default): SELECT CONSTRAINT_NAME as constraint_name,CONSTRAINT_NAME as constraintName,CONSTRAINT_SCHEMA as constraintSchema,CONSTRAINT_SCHEMA as constraintCatalog,TABLE_NAME as tableName,TABLE_SCHEMA as tableSchema,TABLE_SCHEMA as tableCatalog,COLUMN_NAME as columnName,REFERENCED_TABLE_SCHEMA as referencedTableSchema,REFERENCED_TABLE_SCHEMA as referencedTableCatalog,REFERENCED_TABLE_NAME as referencedTableName,REFERENCED_COLUMN_NAME as referencedColumnName FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE where TABLE_NAME = 'chiefeditors' AND CONSTRAINT_NAME!='PRIMARY' AND CONSTRAINT_SCHEMA='review-platform' AND REFERENCED_TABLE_NAME IS NOT NULL;
Executing (default): SELECT CONSTRAINT_NAME as constraint_name,CONSTRAINT_NAME as constraintName,CONSTRAINT_SCHEMA as constraintSchema,CONSTRAINT_SCHEMA as constraintCatalog,TABLE_NAME as tableName,TABLE_SCHEMA as tableSchema,TABLE_SCHEMA as tableCatalog,COLUMN_NAME as columnName,REFERENCED_TABLE_SCHEMA as referencedTableSchema,REFERENCED_TABLE_SCHEMA as referencedTableCatalog,REFERENCED_TABLE_NAME as referencedTableName,REFERENCED_COLUMN_NAME as referencedColumnName FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE where TABLE_NAME = 'vicepresidents' AND CONSTRAINT_NAME!='PRIMARY' AND CONSTRAINT_SCHEMA='review-platform' AND REFERENCED_TABLE_NAME IS NOT NULL;
Executing (default): SELECT CONSTRAINT_NAME as constraint_name,CONSTRAINT_NAME as constraintName,CONSTRAINT_SCHEMA as constraintSchema,CONSTRAINT_SCHEMA as constraintCatalog,TABLE_NAME as tableName,TABLE_SCHEMA as tableSchema,TABLE_SCHEMA as tableCatalog,COLUMN_NAME as columnName,REFERENCED_TABLE_SCHEMA as referencedTableSchema,REFERENCED_TABLE_SCHEMA as referencedTableCatalog,REFERENCED_TABLE_NAME as referencedTableName,REFERENCED_COLUMN_NAME as referencedColumnName FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE where TABLE_NAME = 'selectionassistanteditors' AND CONSTRAINT_NAME!='PRIMARY' AND CONSTRAINT_SCHEMA='review-platform' AND REFERENCED_TABLE_NAME IS NOT NULL;
Executing (default): SELECT CONSTRAINT_NAME as constraint_name,CONSTRAINT_NAME as constraintName,CONSTRAINT_SCHEMA as constraintSchema,CONSTRAINT_SCHEMA as constraintCatalog,TABLE_NAME as tableName,TABLE_SCHEMA as tableSchema,TABLE_SCHEMA as tableCatalog,COLUMN_NAME as columnName,REFERENCED_TABLE_SCHEMA as referencedTableSchema,REFERENCED_TABLE_SCHEMA as referencedTableCatalog,REFERENCED_TABLE_NAME as referencedTableName,REFERENCED_COLUMN_NAME as referencedColumnName FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE where TABLE_NAME = 'sectioneditors' AND CONSTRAINT_NAME!='PRIMARY' AND CONSTRAINT_SCHEMA='review-platform' AND REFERENCED_TABLE_NAME IS NOT NULL;
Executing (default): SELECT CONSTRAINT_NAME as constraint_name,CONSTRAINT_NAME as constraintName,CONSTRAINT_SCHEMA as constraintSchema,CONSTRAINT_SCHEMA as constraintCatalog,TABLE_NAME as tableName,TABLE_SCHEMA as tableSchema,TABLE_SCHEMA as tableCatalog,COLUMN_NAME as columnName,REFERENCED_TABLE_SCHEMA as referencedTableSchema,REFERENCED_TABLE_SCHEMA as referencedTableCatalog,REFERENCED_TABLE_NAME as referencedTableName,REFERENCED_COLUMN_NAME as referencedColumnName FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE where TABLE_NAME = 'users' AND CONSTRAINT_NAME!='PRIMARY' AND CONSTRAINT_SCHEMA='review-platform' AND REFERENCED_TABLE_NAME IS NOT NULL;
Executing (default): DROP TABLE IF EXISTS `grades`;
Executing (default): DROP TABLE IF EXISTS `reviewers`;
Executing (default): DROP TABLE IF EXISTS `chiefeditors`;
Executing (default): DROP TABLE IF EXISTS `vicepresidents`;
Executing (default): DROP TABLE IF EXISTS `selectionassistanteditors`;
Executing (default): DROP TABLE IF EXISTS `sectioneditors`;
Executing (default): DROP TABLE IF EXISTS `users`;
Executing (default): DROP TABLE IF EXISTS `users`;
Executing (default): CREATE TABLE IF NOT EXISTS `users` (`idUser` INTEGER NOT NULL auto_increment , `name` VARCHAR(255) NOT NULL, `surname` VARCHAR(255) NOT NULL, `email` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `username` VARCHAR(255) NOT NULL, `role` VARCHAR(255), `resetToken` VARCHAR(255), `resetTokenExpiration` DATETIME, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`idUser`)) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `users`
Executing (default): DROP TABLE IF EXISTS `reviewers`;
Executing (default): CREATE TABLE IF NOT EXISTS `reviewers` (`id` INTEGER NOT NULL auto_increment , `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `idUser` INTEGER UNIQUE, PRIMARY KEY (`id`), FOREIGN KEY (`idUser`) REFERENCES `users` (`idUser`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `reviewers`
Executing (default): DROP TABLE IF EXISTS `grades`;
Executing (default): CREATE TABLE IF NOT EXISTS `grades` (`id` INTEGER NOT NULL , `grade1` INTEGER NOT NULL DEFAULT 0, `grade2` INTEGER NOT NULL DEFAULT 0, `grade3` INTEGER NOT NULL DEFAULT 0, `grade4` INTEGER NOT NULL DEFAULT 0, `grade5` INTEGER NOT NULL DEFAULT 0, `grade6` INTEGER NOT NULL DEFAULT 0, `grade7` INTEGER NOT NULL DEFAULT 0, `grade8` INTEGER NOT NULL DEFAULT 0, `grade9` INTEGER NOT NULL DEFAULT 0, `grade10` INTEGER NOT NULL DEFAULT 0, `grade11` INTEGER NOT NULL DEFAULT 0, `grade12` INTEGER NOT NULL DEFAULT 0, `grade13` INTEGER NOT NULL DEFAULT 0, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `idUser` INTEGER UNIQUE, PRIMARY KEY (`id`), FOREIGN KEY (`idUser`) REFERENCES `reviewers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `grades`
Executing (default): DROP TABLE IF EXISTS `chiefeditors`;
Executing (default): CREATE TABLE IF NOT EXISTS `chiefeditors` (`id` INTEGER NOT NULL auto_increment , `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `idUser` INTEGER UNIQUE, PRIMARY KEY (`id`), FOREIGN KEY (`idUser`) REFERENCES `users` (`idUser`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `chiefeditors`
Executing (default): DROP TABLE IF EXISTS `vicepresidents`;
Executing (default): CREATE TABLE IF NOT EXISTS `vicepresidents` (`id` INTEGER NOT NULL auto_increment , `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `idUser` INTEGER UNIQUE, PRIMARY KEY (`id`), FOREIGN KEY (`idUser`) REFERENCES `users` (`idUser`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `vicepresidents`
Executing (default): DROP TABLE IF EXISTS `selectionassistanteditors`;
Executing (default): CREATE TABLE IF NOT EXISTS `selectionassistanteditors` (`id` INTEGER NOT NULL auto_increment , `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `idUser` INTEGER UNIQUE, PRIMARY KEY (`id`), FOREIGN KEY (`idUser`) REFERENCES `users` (`idUser`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `selectionassistanteditors`
Executing (default): DROP TABLE IF EXISTS `sectioneditors`;
Executing (default): CREATE TABLE IF NOT EXISTS `sectioneditors` (`id` INTEGER NOT NULL auto_increment , `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `idUser` INTEGER UNIQUE, PRIMARY KEY (`id`), FOREIGN KEY (`idUser`) REFERENCES `users` (`idUser`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `sectioneditors`
thanks in advance