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