代码拉取完成,页面将自动刷新
同步操作将从 一步一个脚印一个坑/webfunny_monitor 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
const Utils = require('./util/utils')
const db = require('./config/db')
const Sequelize = db.sequelize;
const log = require("./config/log");
// 固定表更新sql
const stableSqlStr = `
alter table Project add column monitorFetchCode text default null comment '监控代码(含fetch)';
alter table Project add column alarmRuleId varchar(10) default null comment '规则id';
alter table Project add column alarmMembers text default null comment '通知人员';
alter table User add column phone varchar(11) default null comment '手机号码';
alter table Project add column recordConfig text default null comment '监控配置项';
alter table User add column registerStatus int(11) default 0 comment '注册状态';
`
// 动态表更新sql
const dynamicSqlStr = `
CustomerPV-deviceSize-varchar(50)-null-设备尺寸
HttpErrorInfo-method-varchar(10)-null-请求方法
HttpLogInfo-method-varchar(10)-null-请求方法
`
/** 第一步,更新固定数据表结构 */
const stableSqlArr = stableSqlStr.split('\n')
console.log("")
console.log("")
console.log("=======================================")
console.log("第一步、固定数据库表更新sql如下:")
console.log("=======================================")
for (let i = 0; i < stableSqlArr.length; i ++) {
console.log(stableSqlArr[i])
if (stableSqlArr[i]) {
Sequelize.query(stableSqlArr[i], { type: Sequelize.QueryTypes.SELECT}).then(() => {
log.info(stableSqlArr[i] + " 【执行成功】")
}).catch((e) => {
log.printError(stableSqlArr[i] + " 【无需更新】")
})
}
}
/** 第二步,删除明天的动态数据表 */
let sql1 = "select webMonitorId from Project"
console.log("")
console.log("")
console.log("=======================================")
console.log("第二步、删除明天的动态数据库表sql如下:")
console.log("=======================================")
Sequelize.query(sql1, { type: Sequelize.QueryTypes.SELECT}).then((webMonitorIdList) => {
const dynamicTableList = []
const tempDynamicSqlList = dynamicSqlStr.split('\n')
tempDynamicSqlList.forEach((tempSql) => {
dynamicTableList.push(tempSql.split('-')[0])
})
const tableList = []
const tomorrowDate = Utils.addDays(1).replace(/-/g, "")
webMonitorIdList.forEach((project) => {
dynamicTableList.forEach((dynamicTable) => {
if (dynamicTable) {
tableList.push(project.webMonitorId + dynamicTable + tomorrowDate)
}
})
})
tableList.forEach((tableName, index) => {
if (tableName) {
setTimeout(() => {
let sql = "drop table " + tableName
console.log(sql)
Sequelize.query(sql, { type: Sequelize.QueryTypes.SELECT}).then(() => {
log.info(tableName + " 【删除成功】")
}).catch((e) => {
log.printError(tableName + " 【表不存在或者已删除】")
})
if (index === tableList.length - 1) {
console.log("")
console.log("")
setTimeout(() => {
console.log("===============================================")
console.log("第三步、定时重启")
console.log("1. 数据表创建完成后,请在今天 23:50:00 重启服务")
console.log("2. 请手动执行命令:npm run table_config 创建明天的数据表")
console.log("===============================================")
}, 2000)
}
}, index * 1000)
}
})
})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。