iotsaas/frontend/admin/fix-db.cjs
2995840376 0ce191c448 chore: 初始化 iotsaas 版本库基线
纳入范围:
- backend/  Spring Boot 多模块后端(iot-common/device/rule/data/alarm/auth)
- frontend/admin/  Vue3 + Element Plus 管理后台
- Android/   涂鸦原生 APP (com.xhai.iot)
- backend/sql/  Flyway 风格迁移脚本(V2~V21)
- docs/       对接文档与设计文档

排除范围:
- 构建产物: node_modules/ target/ build/ dist/ .gradle/
- 签名密钥: *.jks *.keystore (严禁入库)
- 本机配置: Android/local.properties
- 运行日志: logs/ *.log
- AI 协作本地数据 .codebuddy/ 与第三方 demo tuya-demo/

.gitattributes 统一以 LF 存储, Windows 批处理保留 CRLF
2026-10-27 12:00:41 +08:00

43 lines
1.2 KiB
JavaScript

const mysql = require('mysql2/promise');
(async () => {
const conn = await mysql.createConnection({
host: 'localhost',
port: 33060,
user: 'root',
password: 'root',
database: 'iot_platform'
});
// 检查 role 列是否存在
const [rows] = await conn.query(
`SELECT COLUMN_NAME FROM information_schema.COLUMNS
WHERE TABLE_NAME='sys_user' AND COLUMN_NAME='role'`
);
if (rows.length === 0) {
console.log('正在添加 role 列...');
await conn.query(
`ALTER TABLE sys_user ADD COLUMN role VARCHAR(20) DEFAULT 'user'
COMMENT '角色(admin-管理员, user-普通用户)' AFTER tenant_id`
);
console.log('role 列已添加');
await conn.query(
`UPDATE sys_user SET role = 'admin' WHERE username = 'admin'`
);
console.log('admin 角色已设置为 admin');
} else {
console.log('role 列已存在,跳过');
}
// 验证
const [[r2]] = await conn.query(
`SELECT id, username, role FROM sys_user WHERE username='admin'`
);
console.log('admin 账号信息:', JSON.stringify(r2));
await conn.end();
console.log('数据库修复完成!');
})().catch(e => console.error('错误:', e.message));