// 模型导入测试脚本 const sequelize = require('./config/database'); const { DataTypes } = require('sequelize'); async function modelImportTest() { try { console.log('开始模型导入测试...'); // 测试数据库连接 await sequelize.authenticate(); console.log('✅ 数据库连接成功'); // 测试直接导入模型 console.log('\n测试直接导入模型:'); // 先测试 Department 模型 console.log('\n测试 Department 模型导入:'); try { const Department = require('./models/Department'); console.log('Department 模型导入:', Department ? '✅ 成功' : '❌ 失败'); // 测试 Department 模型的结构 if (Department) { console.log('Department 模型是否有 define 方法:', typeof Department.define === 'function' ? '✅ 是' : '❌ 否'); console.log('Department 模型的 tableName:', Department.tableName || Department.options?.tableName || '未定义'); } } catch (error) { console.error('Department 模型导入失败:', error.message); } // 测试 Position 模型 console.log('\n测试 Position 模型导入:'); try { const Position = require('./models/Position'); console.log('Position 模型导入:', Position ? '✅ 成功' : '❌ 失败'); // 测试 Position 模型的结构 if (Position) { console.log('Position 模型是否有 define 方法:', typeof Position.define === 'function' ? '✅ 是' : '❌ 否'); console.log('Position 模型的 tableName:', Position.tableName || Position.options?.tableName || '未定义'); } } catch (error) { console.error('Position 模型导入失败:', error.message); } // 测试 AdminStaff 模型 console.log('\n测试 AdminStaff 模型导入:'); try { // 先导入依赖模型 require('./models/Department'); require('./models/Position'); const AdminStaff = require('./models/AdminStaff'); console.log('AdminStaff 模型导入:', AdminStaff ? '✅ 成功' : '❌ 失败'); // 测试 AdminStaff 模型的结构 if (AdminStaff) { console.log('AdminStaff 模型是否有 define 方法:', typeof AdminStaff.define === 'function' ? '✅ 是' : '❌ 否'); console.log('AdminStaff 模型的 tableName:', AdminStaff.tableName || AdminStaff.options?.tableName || '未定义'); } } catch (error) { console.error('AdminStaff 模型导入失败:', error.message); console.error('错误详情:', error); } // 测试创建一个简单的新模型 console.log('\n测试创建新模型:'); try { const TestModel = sequelize.define('TestModel', { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, name: { type: DataTypes.STRING, allowNull: false } }, { tableName: 'test_models', timestamps: false, paranoid: false }); console.log('新模型创建:', TestModel ? '✅ 成功' : '❌ 失败'); } catch (error) { console.error('新模型创建失败:', error.message); } console.log('\n✅ 模型导入测试完成'); } catch (error) { console.error('❌ 模型导入测试失败:', error.message); console.error('错误详情:', error); } finally { await sequelize.close(); } } modelImportTest();