Files
wwjcloud-nest-v1/wwjcloud/test-migration.js

108 lines
3.7 KiB
JavaScript
Raw Normal View History

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();