新增資料庫、用戶註冊、登入的功能
This commit is contained in:
80
scripts/fix-user-likes.js
Normal file
80
scripts/fix-user-likes.js
Normal file
@@ -0,0 +1,80 @@
|
||||
const mysql = require('mysql2/promise');
|
||||
|
||||
// 資料庫配置
|
||||
const dbConfig = {
|
||||
host: process.env.DB_HOST || 'mysql.theaken.com',
|
||||
port: parseInt(process.env.DB_PORT || '33306'),
|
||||
user: process.env.DB_USER || 'AI_Platform',
|
||||
password: process.env.DB_PASSWORD || 'Aa123456',
|
||||
database: process.env.DB_NAME || 'db_AI_Platform',
|
||||
charset: 'utf8mb4',
|
||||
timezone: '+08:00'
|
||||
};
|
||||
|
||||
async function fixUserLikes() {
|
||||
let connection;
|
||||
|
||||
try {
|
||||
console.log('🔧 修復 user_likes 表...');
|
||||
|
||||
// 連接資料庫
|
||||
connection = await mysql.createConnection(dbConfig);
|
||||
|
||||
// 先刪除可能存在的表
|
||||
try {
|
||||
await connection.query('DROP TABLE IF EXISTS user_likes');
|
||||
console.log('✅ 刪除舊的 user_likes 表');
|
||||
} catch (error) {
|
||||
console.log('沒有舊表需要刪除');
|
||||
}
|
||||
|
||||
// 建立簡化版的 user_likes 表
|
||||
const userLikesTable = `
|
||||
CREATE TABLE user_likes (
|
||||
id VARCHAR(36) PRIMARY KEY,
|
||||
user_id VARCHAR(36) NOT NULL,
|
||||
app_id VARCHAR(36),
|
||||
proposal_id VARCHAR(36),
|
||||
liked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (app_id) REFERENCES apps(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (proposal_id) REFERENCES proposals(id) ON DELETE CASCADE,
|
||||
INDEX idx_user (user_id),
|
||||
INDEX idx_app (app_id),
|
||||
INDEX idx_proposal (proposal_id),
|
||||
INDEX idx_date (liked_at)
|
||||
)
|
||||
`;
|
||||
|
||||
await connection.query(userLikesTable);
|
||||
console.log('✅ user_likes 表建立成功');
|
||||
|
||||
// 驗證結果
|
||||
const [tables] = await connection.query(`
|
||||
SELECT TABLE_NAME, TABLE_ROWS
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = '${dbConfig.database}' AND TABLE_NAME = 'user_likes'
|
||||
`);
|
||||
|
||||
if (tables.length > 0) {
|
||||
console.log('✅ user_likes 表驗證成功');
|
||||
} else {
|
||||
console.log('❌ user_likes 表建立失敗');
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ 修復 user_likes 表失敗:', error.message);
|
||||
} finally {
|
||||
if (connection) {
|
||||
await connection.end();
|
||||
console.log('\n🔌 資料庫連接已關閉');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 執行修復腳本
|
||||
if (require.main === module) {
|
||||
fixUserLikes();
|
||||
}
|
||||
|
||||
module.exports = { fixUserLikes };
|
Reference in New Issue
Block a user