Files
hr-assessment-system/scripts/test-direct-insert.js

102 lines
3.1 KiB
JavaScript

const mysql = require('mysql2/promise')
async function testDirectInsert() {
const config = {
host: process.env.DB_HOST || 'mysql.theaken.com',
port: parseInt(process.env.DB_PORT || '33306'),
user: process.env.DB_USER || 'hr_assessment',
password: process.env.DB_PASSWORD || 'QFOts8FlibiI',
database: process.env.DB_NAME || 'db_hr_assessment',
}
console.log('🧪 直接測試資料庫插入')
console.log('=' .repeat(50))
try {
const connection = await mysql.createConnection(config)
// 測試插入 test_results
console.log('\n📊 測試插入 test_results...')
const testResultId = `test_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`
const insertTestResultQuery = `
INSERT INTO test_results (
id, user_id, test_type, score, total_questions,
correct_answers, completed_at
) VALUES (?, ?, ?, ?, ?, ?, ?)
`
const testResultData = [
testResultId,
'test_user_123',
'logic',
80,
10,
8,
new Date().toISOString()
]
console.log('插入數據:', testResultData)
await connection.execute(insertTestResultQuery, testResultData)
console.log('✅ test_results 插入成功')
// 測試插入 logic_test_answers
console.log('\n📝 測試插入 logic_test_answers...')
// 先獲取一個題目ID
const [questions] = await connection.execute('SELECT id FROM logic_questions LIMIT 1')
if (questions.length === 0) {
console.log('❌ 沒有找到邏輯題目')
return
}
const questionId = questions[0].id
console.log('使用題目ID:', questionId)
const answerId = `answer_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`
const insertAnswerQuery = `
INSERT INTO logic_test_answers (
id, test_result_id, question_id, user_answer, is_correct
) VALUES (?, ?, ?, ?, ?)
`
const answerData = [
answerId,
testResultId,
questionId,
'A',
1
]
console.log('插入答案數據:', answerData)
await connection.execute(insertAnswerQuery, answerData)
console.log('✅ logic_test_answers 插入成功')
// 驗證插入結果
console.log('\n🔍 驗證插入結果...')
const [testResults] = await connection.execute('SELECT * FROM test_results WHERE id = ?', [testResultId])
console.log('test_results 記錄:', testResults[0])
const [answers] = await connection.execute('SELECT * FROM logic_test_answers WHERE id = ?', [answerId])
console.log('logic_test_answers 記錄:', answers[0])
// 清理測試數據
console.log('\n🧹 清理測試數據...')
await connection.execute('DELETE FROM logic_test_answers WHERE id = ?', [answerId])
await connection.execute('DELETE FROM test_results WHERE id = ?', [testResultId])
console.log('✅ 測試數據已清理')
await connection.end()
console.log('\n✅ 直接插入測試成功')
} catch (error) {
console.error('❌ 插入測試失敗:', error.message)
console.error('錯誤詳情:', error)
}
}
testDirectInsert()