Fix circular dependency: Remove explicit foreign key references and let Sequelize handle relationships

This commit is contained in:
Mahmoud M. Abdalla 2025-07-26 21:35:58 +03:00
parent 2c3a071ad8
commit bd8f2a0991
6 changed files with 16 additions and 36 deletions

View file

@ -19,6 +19,10 @@ const sequelize = new Sequelize(
define: {
timestamps: true,
underscored: false
},
sync: {
force: false,
alter: false
}
}
);

View file

@ -9,19 +9,11 @@ const Assignment = sequelize.define('Assignment', {
},
trainerId: {
type: DataTypes.UUID,
allowNull: false,
references: {
model: 'Users',
key: 'id'
}
allowNull: false
},
courseId: {
type: DataTypes.UUID,
allowNull: false,
references: {
model: 'Courses',
key: 'id'
}
allowNull: false
},
title: {
type: DataTypes.STRING,

View file

@ -9,19 +9,11 @@ const Attendance = sequelize.define('Attendance', {
},
userId: {
type: DataTypes.UUID,
allowNull: false,
references: {
model: 'Users',
key: 'id'
}
allowNull: false
},
courseId: {
type: DataTypes.UUID,
allowNull: false,
references: {
model: 'Courses',
key: 'id'
}
allowNull: false
},
date: {
type: DataTypes.DATEONLY,

View file

@ -9,11 +9,7 @@ const Course = sequelize.define('Course', {
},
trainerId: {
type: DataTypes.UUID,
allowNull: false,
references: {
model: 'Users',
key: 'id'
}
allowNull: false
},
title: {
type: DataTypes.STRING,

View file

@ -9,19 +9,11 @@ const Enrollment = sequelize.define('Enrollment', {
},
userId: {
type: DataTypes.UUID,
allowNull: false,
references: {
model: 'Users',
key: 'id'
}
allowNull: false
},
courseId: {
type: DataTypes.UUID,
allowNull: false,
references: {
model: 'Courses',
key: 'id'
}
allowNull: false
},
status: {
type: DataTypes.ENUM('pending', 'active', 'completed', 'cancelled'),

View file

@ -8,7 +8,11 @@ const setupDatabase = async () => {
try {
console.log('🔄 Setting up database...');
// Sync database
// Test database connection
await sequelize.authenticate();
console.log('✅ Database connection established.');
// Sync database with force to recreate all tables
await sequelize.sync({ force: true });
console.log('✅ Database synchronized successfully.');