93 lines
3.1 KiB
JavaScript
93 lines
3.1 KiB
JavaScript
// =====================================================
|
||
// 設置競賽關聯數據
|
||
// =====================================================
|
||
|
||
const mysql = require('mysql2/promise');
|
||
|
||
async function setupCompetitionRelations() {
|
||
console.log('🔧 設置競賽關聯數據...\n');
|
||
|
||
try {
|
||
// 連接數據庫
|
||
const connection = await mysql.createConnection({
|
||
host: 'mysql.theaken.com',
|
||
port: 33306,
|
||
user: 'AI_Platform',
|
||
password: 'Aa123456',
|
||
database: 'db_AI_Platform'
|
||
});
|
||
|
||
console.log('✅ 數據庫連接成功');
|
||
|
||
const competitionId = "be4b0a71-91f1-11f0-bb38-4adff2d0e33e";
|
||
|
||
// 檢查現有的評審
|
||
console.log('\n📊 檢查現有評審...');
|
||
const [judges] = await connection.execute('SELECT id, name FROM judges LIMIT 5');
|
||
console.log('現有評審:', judges);
|
||
|
||
// 檢查現有的APP
|
||
console.log('\n📱 檢查現有APP...');
|
||
const [apps] = await connection.execute('SELECT id, name FROM apps LIMIT 5');
|
||
console.log('現有APP:', apps);
|
||
|
||
// 檢查現有的關聯
|
||
console.log('\n🔗 檢查現有關聯...');
|
||
const [existingJudges] = await connection.execute(
|
||
'SELECT COUNT(*) as count FROM competition_judges WHERE competition_id = ?',
|
||
[competitionId]
|
||
);
|
||
const [existingApps] = await connection.execute(
|
||
'SELECT COUNT(*) as count FROM competition_apps WHERE competition_id = ?',
|
||
[competitionId]
|
||
);
|
||
console.log('競賽評審關聯數:', existingJudges[0].count);
|
||
console.log('競賽APP關聯數:', existingApps[0].count);
|
||
|
||
// 如果沒有關聯,創建一些測試關聯
|
||
if (existingJudges[0].count === 0 && judges.length > 0) {
|
||
console.log('\n➕ 創建評審關聯...');
|
||
for (let i = 0; i < Math.min(3, judges.length); i++) {
|
||
await connection.execute(
|
||
'INSERT INTO competition_judges (competition_id, judge_id) VALUES (?, ?)',
|
||
[competitionId, judges[i].id]
|
||
);
|
||
console.log(`✅ 關聯評審: ${judges[i].name}`);
|
||
}
|
||
}
|
||
|
||
if (existingApps[0].count === 0 && apps.length > 0) {
|
||
console.log('\n➕ 創建APP關聯...');
|
||
for (let i = 0; i < Math.min(2, apps.length); i++) {
|
||
await connection.execute(
|
||
'INSERT INTO competition_apps (competition_id, app_id) VALUES (?, ?)',
|
||
[competitionId, apps[i].id]
|
||
);
|
||
console.log(`✅ 關聯APP: ${apps[i].name}`);
|
||
}
|
||
}
|
||
|
||
// 驗證關聯
|
||
console.log('\n✅ 驗證關聯...');
|
||
const [finalJudges] = await connection.execute(
|
||
'SELECT COUNT(*) as count FROM competition_judges WHERE competition_id = ?',
|
||
[competitionId]
|
||
);
|
||
const [finalApps] = await connection.execute(
|
||
'SELECT COUNT(*) as count FROM competition_apps WHERE competition_id = ?',
|
||
[competitionId]
|
||
);
|
||
console.log('最終評審關聯數:', finalJudges[0].count);
|
||
console.log('最終APP關聯數:', finalApps[0].count);
|
||
|
||
await connection.end();
|
||
console.log('\n✅ 數據庫連接已關閉');
|
||
|
||
} catch (error) {
|
||
console.error('❌ 設置失敗:', error.message);
|
||
}
|
||
}
|
||
|
||
// 執行設置
|
||
setupCompetitionRelations();
|