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

108 lines
3.7 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const axios = require('axios');
// 测试迁移工具的脚本
async function testMigration() {
const baseURL = 'http://localhost:3000';
try {
console.log('🚀 开始测试迁移工具...\n');
// 1. 获取所有表列表
console.log('📋 获取数据库表列表...');
const tablesResponse = await axios.get(`${baseURL}/adminapi/migration/tables`);
console.log('✅ 表列表:', tablesResponse.data.data?.slice(0, 5)); // 只显示前5个
// 2. 获取 sys_user 表信息
console.log('\n👤 获取 sys_user 表信息...');
const userTableResponse = await axios.get(`${baseURL}/adminapi/migration/table/sys_user`);
console.log('✅ sys_user 表信息:', {
tableName: userTableResponse.data.data?.tableName,
className: userTableResponse.data.data?.className,
moduleName: userTableResponse.data.data?.moduleName,
fieldsCount: userTableResponse.data.data?.fields?.length
});
// 3. 预览 sys_user 代码生成
console.log('\n👁 预览 sys_user 代码生成...');
const previewResponse = await axios.post(`${baseURL}/adminapi/migration/preview`, {
tableName: 'sys_user',
generateController: true,
generateService: true,
generateEntity: true,
generateDto: true,
generateMapper: true,
generateEvents: true,
generateListeners: true
});
console.log('✅ 预览结果:');
previewResponse.data.data?.forEach((file, index) => {
console.log(` ${index + 1}. ${file.filePath} (${file.type})`);
});
// 4. 测试 PHP 迁移服务
console.log('\n🐘 测试 PHP 迁移服务...');
const phpMigrateResponse = await axios.post(`${baseURL}/adminapi/migration/php/migrate`, {
tableName: 'sys_user',
options: {
generateController: true,
generateService: true,
generateEntity: true,
generateDto: true,
generateMapper: true,
generateEvents: true,
generateListeners: true
}
});
console.log('✅ PHP 迁移结果:');
phpMigrateResponse.data.data?.forEach((file, index) => {
console.log(` ${index + 1}. ${file.filePath} (${file.type})`);
});
// 5. 批量迁移测试
console.log('\n📦 测试批量迁移...');
const batchResponse = await axios.post(`${baseURL}/adminapi/migration/php/batch-migrate`, {
tableNames: ['sys_user', 'sys_menu', 'sys_config'],
options: {
generateController: true,
generateService: true,
generateEntity: true,
generateDto: true,
generateMapper: true,
generateEvents: true,
generateListeners: true
}
});
console.log('✅ 批量迁移结果:');
batchResponse.data.data?.forEach((result, index) => {
console.log(` ${index + 1}. ${result.tableName}: ${result.success ? '✅ 成功' : '❌ 失败'}`);
if (result.success) {
console.log(` 生成了 ${result.files?.length} 个文件`);
} else {
console.log(` 错误: ${result.error}`);
}
});
// 6. 生成迁移报告
console.log('\n📊 生成迁移报告...');
const reportResponse = await axios.post(`${baseURL}/adminapi/migration/php/report`, {
tableNames: ['sys_user', 'sys_menu', 'sys_config']
});
console.log('✅ 迁移报告:');
console.log(` 总表数: ${reportResponse.data.data?.totalTables}`);
console.log(` 成功: ${reportResponse.data.data?.successCount}`);
console.log(` 失败: ${reportResponse.data.data?.failedCount}`);
console.log('\n🎉 迁移工具测试完成!');
} catch (error) {
console.error('❌ 测试失败:', error.response?.data || error.message);
}
}
// 运行测试
testMigration();