Files
wwjcloud-nest-v1/wwjcloud/test-migration-direct.js
万物街 127a4db1e3 feat: 完成sys模块迁移,对齐PHP/Java框架
- 重构sys模块架构,严格按admin/api/core分层
- 对齐所有sys实体与数据库表结构
- 实现完整的adminapi控制器,匹配PHP/Java契约
- 修复依赖注入问题,确保服务正确注册
- 添加自动迁移工具和契约验证
- 完善多租户支持和审计功能
- 统一命名规范,与PHP业务逻辑保持一致
2025-09-21 21:29:28 +08:00

144 lines
4.3 KiB
JavaScript

// 直接测试迁移工具功能
const { GeneratorService } = require('./dist/common/generator/services/generator.service');
const { PhpMigrationService } = require('./dist/tools/migration/services/php-migration.service');
async function testMigrationDirect() {
try {
console.log('🚀 开始直接测试迁移工具...\n');
// 模拟数据库连接
const mockDataSource = {
query: async (sql, params) => {
console.log('📝 执行SQL:', sql);
console.log('📝 参数:', params);
if (sql.includes('INFORMATION_SCHEMA.TABLES')) {
return [
{ tableName: 'sys_user' },
{ tableName: 'sys_menu' },
{ tableName: 'sys_config' },
{ tableName: 'sys_area' },
{ tableName: 'sys_dict_type' }
];
}
if (sql.includes('INFORMATION_SCHEMA.COLUMNS')) {
return [
{
columnName: 'uid',
columnComment: '用户ID',
dataType: 'int',
isNullable: 'NO',
columnKey: 'PRI',
columnDefault: null,
extra: 'auto_increment'
},
{
columnName: 'username',
columnComment: '用户名',
dataType: 'varchar',
isNullable: 'NO',
columnKey: '',
columnDefault: null,
extra: ''
},
{
columnName: 'real_name',
columnComment: '真实姓名',
dataType: 'varchar',
isNullable: 'YES',
columnKey: '',
columnDefault: null,
extra: ''
},
{
columnName: 'status',
columnComment: '状态',
dataType: 'tinyint',
isNullable: 'NO',
columnKey: '',
columnDefault: '1',
extra: ''
},
{
columnName: 'create_time',
columnComment: '创建时间',
dataType: 'int',
isNullable: 'NO',
columnKey: '',
columnDefault: null,
extra: ''
}
];
}
if (sql.includes('TABLE_COMMENT')) {
return [{ tableComment: '系统用户表' }];
}
return [];
}
};
// 创建生成器服务
const generatorService = new GeneratorService();
generatorService.dataSource = mockDataSource;
generatorService.configService = {
get: (key, defaultValue) => defaultValue || 'NiuCloud Team'
};
// 测试获取表列表
console.log('📋 测试获取表列表...');
const tables = await generatorService.getTables();
console.log('✅ 表列表:', tables);
// 测试获取表信息
console.log('\n👤 测试获取 sys_user 表信息...');
const tableInfo = await generatorService.getTableInfo('sys_user');
console.log('✅ 表信息:', {
tableName: tableInfo.tableName,
className: tableInfo.className,
moduleName: tableInfo.moduleName,
fieldsCount: tableInfo.fields.length
});
// 测试代码生成
console.log('\n🔧 测试代码生成...');
const files = await generatorService.generate({
tableName: 'sys_user',
generateType: 1,
generateController: true,
generateService: true,
generateEntity: true,
generateDto: true,
generateMapper: true,
generateEvents: true,
generateListeners: true
});
console.log('✅ 代码生成成功');
console.log('📁 生成文件数量:', files.length);
console.log('📄 生成的文件:');
files.forEach((file, index) => {
console.log(` ${index + 1}. ${file.filePath} (${file.type})`);
console.log(` 内容长度: ${file.content.length} 字符`);
});
// 显示部分生成内容
console.log('\n📝 生成内容示例 (Controller):');
const controllerFile = files.find(f => f.type === 'controller');
if (controllerFile) {
console.log(controllerFile.content.substring(0, 500) + '...');
}
console.log('\n🎉 直接测试完成!迁移工具工作正常!');
} catch (error) {
console.error('❌ 测试失败:', error.message);
console.error('错误详情:', error);
}
}
// 运行测试
testMigrationDirect();