Files
nxxmdata/bank-backend/scripts/setup-projects.js

80 lines
2.6 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 { sequelize } = require('../config/database');
const seedProjects = require('./seed-projects');
async function setupProjects() {
try {
console.log('🚀 开始设置项目清单功能...\n');
// 1. 测试数据库连接
console.log('1⃣ 测试数据库连接...');
await sequelize.authenticate();
console.log('✅ 数据库连接成功\n');
// 2. 运行项目表迁移
console.log('2⃣ 运行项目表迁移...');
try {
const { QueryInterface } = require('sequelize');
const queryInterface = sequelize.getQueryInterface();
// 检查表是否已存在
const tableExists = await queryInterface.showAllTables().then(tables =>
tables.includes('projects')
);
if (!tableExists) {
// 运行迁移
const migration = require('../migrations/20241220000002-create-projects');
await migration.up(queryInterface, sequelize);
console.log('✅ 项目表创建成功\n');
} else {
console.log('✅ 项目表已存在\n');
}
} catch (error) {
console.error('❌ 项目表迁移失败:', error.message);
throw error;
}
// 3. 创建项目测试数据
console.log('3⃣ 创建项目测试数据...');
await seedProjects();
console.log('✅ 项目测试数据创建完成\n');
// 4. 验证数据
console.log('4⃣ 验证项目数据...');
const { Project } = require('../models');
const projectCount = await Project.count();
const supervisionCount = await Project.count({ where: { status: 'supervision' } });
const completedCount = await Project.count({ where: { status: 'completed' } });
console.log(` 总项目数: ${projectCount}`);
console.log(` 监管中项目: ${supervisionCount}`);
console.log(` 已结项项目: ${completedCount}`);
console.log('✅ 项目数据验证完成\n');
console.log('🎉 项目清单功能设置完成!');
console.log('📝 接下来可以:');
console.log(' 1. 启动后端服务器: npm start');
console.log(' 2. 运行API测试: node test-projects-api.js');
console.log(' 3. 在前端访问项目清单页面');
} catch (error) {
console.error('❌ 设置项目清单功能失败:', error);
throw error;
}
}
// 如果直接运行此脚本
if (require.main === module) {
setupProjects()
.then(() => {
console.log('✅ 脚本执行完成');
process.exit(0);
})
.catch((error) => {
console.error('❌ 脚本执行失败:', error);
process.exit(1);
});
}
module.exports = setupProjects;