Files
nxxmdata/government-backend/model-import-test.js

99 lines
3.4 KiB
JavaScript

// 模型导入测试脚本
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();