56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
const mysql = require('mysql2/promise');
|
||
const path = require('path');
|
||
const fs = require('fs');
|
||
|
||
// 数据库配置(从.env读取或使用默认值)
|
||
const config = {
|
||
host: process.env.DB_HOST || '129.211.213.226',
|
||
port: process.env.DB_PORT || 9527,
|
||
user: process.env.DB_USER || 'root',
|
||
password: process.env.DB_PASSWORD || 'aiotAiot123!',
|
||
database: process.env.DB_NAME || 'ningxia_zhengfu',
|
||
multipleStatements: true // 允许执行多条SQL语句
|
||
};
|
||
|
||
async function run() {
|
||
let connection;
|
||
try {
|
||
// 1. 连接数据库
|
||
connection = await mysql.createConnection(config);
|
||
console.log('数据库连接成功');
|
||
|
||
// 2. 执行建表SQL
|
||
const schemaSql = fs.readFileSync(
|
||
path.join(__dirname, '../sql/schema.sql'),
|
||
'utf8'
|
||
);
|
||
await connection.query(schemaSql);
|
||
console.log('数据库表创建完成');
|
||
|
||
// 3. 插入测试数据
|
||
const dataSql = fs.readFileSync(
|
||
path.join(__dirname, '../sql/seed-data.sql'),
|
||
'utf8'
|
||
);
|
||
await connection.query(dataSql);
|
||
console.log('测试数据插入完成');
|
||
|
||
// 4. 验证数据
|
||
const [entities] = await connection.query('SELECT COUNT(*) as count FROM supervision_entities');
|
||
const [inspections] = await connection.query('SELECT COUNT(*) as count FROM inspections');
|
||
console.log('\n数据验证结果:');
|
||
console.log(`监管实体数量: ${entities[0].count}`);
|
||
console.log(`检查记录数量: ${inspections[0].count}`);
|
||
|
||
} catch (err) {
|
||
console.error('数据库操作失败:', err.message);
|
||
} finally {
|
||
if (connection) {
|
||
await connection.end();
|
||
console.log('数据库连接已关闭');
|
||
}
|
||
}
|
||
}
|
||
|
||
// 立即执行
|
||
run(); |