- 重构sys模块架构,严格按admin/api/core分层 - 对齐所有sys实体与数据库表结构 - 实现完整的adminapi控制器,匹配PHP/Java契约 - 修复依赖注入问题,确保服务正确注册 - 添加自动迁移工具和契约验证 - 完善多租户支持和审计功能 - 统一命名规范,与PHP业务逻辑保持一致
108 lines
3.7 KiB
JavaScript
108 lines
3.7 KiB
JavaScript
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();
|