Fix circular dependency: Remove explicit foreign key references and let Sequelize handle relationships
This commit is contained in:
parent
f76bab9646
commit
ec8831db5d
6 changed files with 16 additions and 36 deletions
|
|
@ -19,6 +19,10 @@ const sequelize = new Sequelize(
|
||||||
define: {
|
define: {
|
||||||
timestamps: true,
|
timestamps: true,
|
||||||
underscored: false
|
underscored: false
|
||||||
|
},
|
||||||
|
sync: {
|
||||||
|
force: false,
|
||||||
|
alter: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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'),
|
||||||
|
|
|
||||||
|
|
@ -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.');
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue