Files
ln-bi/scripts/check-schema.ts
kkfluous 0cc5024132
All checks were successful
ci/woodpecker/manual/woodpecker Pipeline was successful
feat: 羚牛 BI 报表服务初始版本
- Hono + TypeScript 后端,连接 MySQL 数据库
- React + Vite + Tailwind 前端
- 车辆资产实时汇总(按车型/品牌型号分组)
- 本周交车/还车/替换统计(关联业务单据)
- 车牌号详情弹窗
- Dockerfile + Woodpecker CI 流水线

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:02:49 +08:00

55 lines
2.0 KiB
TypeScript

import dotenv from 'dotenv';
dotenv.config();
import mysql from 'mysql2/promise';
async function main() {
const pool = mysql.createPool({
host: process.env.DB_HOST,
port: Number(process.env.DB_PORT),
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
});
// Check tab_truck columns for time-related fields
const [truckCols] = await pool.query(`
SELECT COLUMN_NAME, DATA_TYPE, COLUMN_COMMENT
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA='lingniu_prod3' AND TABLE_NAME='tab_truck'
AND (COLUMN_NAME LIKE '%time%' OR COLUMN_NAME LIKE '%date%' OR COLUMN_NAME LIKE '%status%' OR COLUMN_NAME LIKE '%create%' OR COLUMN_NAME LIKE '%update%' OR COLUMN_NAME LIKE '%delete%' OR COLUMN_NAME LIKE '%operation%')
ORDER BY ORDINAL_POSITION
`);
console.log('=== tab_truck time/status columns ===');
for (const c of truckCols as any[]) {
console.log(` ${c.COLUMN_NAME} (${c.DATA_TYPE}) — ${c.COLUMN_COMMENT || ''}`);
}
// Check for status change/history tables
const [tables] = await pool.query(`
SELECT TABLE_NAME, TABLE_COMMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA='lingniu_prod3'
AND (TABLE_NAME LIKE '%log%' OR TABLE_NAME LIKE '%history%' OR TABLE_NAME LIKE '%change%' OR TABLE_NAME LIKE '%record%' OR TABLE_NAME LIKE '%status%')
ORDER BY TABLE_NAME
`);
console.log('\n=== Related history/log tables ===');
for (const t of tables as any[]) {
console.log(` ${t.TABLE_NAME}${t.TABLE_COMMENT || ''}`);
}
// Check tab_truck_status_info structure
const [statusCols] = await pool.query(`
SELECT COLUMN_NAME, DATA_TYPE, COLUMN_COMMENT
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA='lingniu_prod3' AND TABLE_NAME='tab_truck_status_info'
ORDER BY ORDINAL_POSITION
`);
console.log('\n=== tab_truck_status_info columns ===');
for (const c of statusCols as any[]) {
console.log(` ${c.COLUMN_NAME} (${c.DATA_TYPE}) — ${c.COLUMN_COMMENT || ''}`);
}
await pool.end();
}
main();