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: { define: {
timestamps: true, timestamps: true,
underscored: false underscored: false
},
sync: {
force: false,
alter: false
} }
} }
); );

View file

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

View file

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

View file

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

View file

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

View file

@ -8,7 +8,11 @@ const setupDatabase = async () => {
try { try {
console.log('🔄 Setting up database...'); 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 }); await sequelize.sync({ force: true });
console.log('✅ Database synchronized successfully.'); console.log('✅ Database synchronized successfully.');