Files
jiebanke/db_test.js
ylweng 8e5295b572 refactor(backend): 重构动物相关 API 接口
- 更新了动物数据结构和相关类型定义
- 优化了动物列表、详情、创建、更新和删除接口
- 新增了更新动物状态接口
- 移除了与认领记录相关的接口
-调整了 API 响应结构
2025-08-31 00:45:46 +08:00

137 lines
4.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const mysql = require('mysql2');
// 数据库配置
const dbConfig = {
host: '129.211.213.226',
port: 9527,
user: 'root',
password: 'aiotAiot123!',
database: 'jiebandata'
};
// 创建连接
const connection = mysql.createConnection(dbConfig);
// 连接数据库
connection.connect((err) => {
if (err) {
console.error('数据库连接失败: ' + err.stack);
return;
}
console.log('数据库连接成功连接ID: ' + connection.threadId);
// 查询所有表
connection.query('SHOW TABLES', (error, results) => {
if (error) {
console.error('查询表失败: ' + error.stack);
connection.end();
return;
}
console.log('数据库中的所有表:');
const tables = results.map(row => {
const tableName = Object.values(row)[0];
console.log('- ' + tableName);
return tableName;
});
// 检查是否存在管理员表
const adminTableExists = tables.some(table =>
table.includes('admin') || table.includes('Admin') || table.includes('ADMIN')
);
if (adminTableExists) {
console.log('\n✅ 找到可能的管理员相关表');
// 显示管理员相关表结构
const adminTables = tables.filter(table =>
table.includes('admin') || table.includes('Admin') || table.includes('ADMIN')
);
showTableStructure(adminTables, 0);
} else {
console.log('\n❌ 未找到管理员相关表');
// 显示所有表的简要信息
showAllTablesInfo(tables, 0);
}
});
// 显示表结构的递归函数
function showTableStructure(tables, index) {
if (index >= tables.length) {
connection.end();
return;
}
const tableName = tables[index];
console.log(`\n${tableName} 表结构:`);
connection.query(`DESCRIBE ${tableName}`, (error, results) => {
if (error) {
console.error(`查询 ${tableName} 表结构失败: ` + error.stack);
} else {
console.table(results.map(row => ({
字段: row.Field,
类型: row.Type,
: row.Null,
: row.Key,
默认值: row.Default,
额外: row.Extra
})));
}
showTableStructure(tables, index + 1);
});
}
// 显示所有表信息的递归函数
function showAllTablesInfo(tables, index) {
if (index >= tables.length) {
// 创建管理员表的SQL
console.log('\n=== 建议创建的管理员表结构 ===');
const createAdminTableSQL = `
CREATE TABLE admins (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100) UNIQUE,
nickname VARCHAR(100),
avatar VARCHAR(255),
role ENUM('super_admin', 'admin', 'operator') DEFAULT 'admin',
status TINYINT DEFAULT 1,
last_login TIMESTAMP NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);`;
console.log(createAdminTableSQL);
// 插入测试数据的SQL
console.log('\n=== 插入测试数据 ===');
const insertTestDataSQL = `
INSERT INTO admins (username, password, email, nickname, role) VALUES
('admin', '$2b$10$rVuz/q97ocR1Zb07DzW5F.9Qx6B6HnV7JFzQb5nR1W3v7Z2mH4n6O', 'admin@example.com', '超级管理员', 'super_admin'),
('operator', '$2b$10$rVuz/q97ocR1Zb07DzW5F.9Qx6B6HnV7JFzQb5nR1W3v7Z2mH4n6O', 'operator@example.com', '操作员', 'operator');
`;
console.log(insertTestDataSQL);
connection.end();
return;
}
const tableName = tables[index];
console.log(`\n${tableName} 表信息:`);
connection.query(`SELECT COUNT(*) as count FROM ${tableName}`, (error, results) => {
if (error) {
console.error(`查询 ${tableName} 表数据量失败: ` + error.stack);
} else {
console.log(`数据量: ${results[0].count}`);
}
showAllTablesInfo(tables, index + 1);
});
}
});