This commit is contained in:
张成
2025-11-24 13:23:42 +08:00
commit 5d7444cd65
156 changed files with 50653 additions and 0 deletions

View File

@@ -0,0 +1,78 @@
const Framework = require('../framework/node-core-framework.js');
const frameworkConfig = require('../config/framework.config.js');
/**
* 同步所有模型到数据库
* 执行所有 model 的 sync() 操作
*/
async function syncAllModels() {
try {
console.log('开始同步所有模型到数据库...');
// 初始化框架
console.log('正在初始化框架...');
const framework = await Framework.init(frameworkConfig);
// 获取所有模型
const models = Framework.getModels();
if (!models) {
console.error('无法获取模型列表');
return;
}
console.log('找到以下模型:');
Object.keys(models).forEach(modelName => {
console.log(`- ${modelName}`);
});
// 同步所有模型
const syncPromises = Object.keys(models).map(async (modelName) => {
try {
const model = models[modelName];
console.log(`正在同步模型: ${modelName}`);
// 执行同步
await model.sync({ alter: true });
console.log(`${modelName} 同步完成`);
return { modelName, success: true };
} catch (error) {
console.error(`${modelName} 同步失败:`, error.message);
return { modelName, success: false, error: error.message };
}
});
// 等待所有同步操作完成
const results = await Promise.all(syncPromises);
// 统计结果
const successCount = results.filter(r => r.success).length;
const failCount = results.filter(r => !r.success).length;
console.log('\n=== 同步结果统计 ===');
console.log(`成功: ${successCount} 个模型`);
console.log(`失败: ${failCount} 个模型`);
if (failCount > 0) {
console.log('\n失败的模型:');
results.filter(r => !r.success).forEach(r => {
console.log(`- ${r.modelName}: ${r.error}`);
});
}
console.log('\n数据库同步操作完成');
} catch (error) {
console.error('同步过程中发生错误:', error);
}
}
// 执行同步
syncAllModels().then(() => {
console.log('脚本执行完成');
process.exit(0);
}).catch(error => {
console.error('脚本执行失败:', error);
process.exit(1);
});