You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.5 KiB

3 months ago
// 简化版修复脚本:将reviewed状态商品更新为published
const { Sequelize } = require('sequelize');
require('dotenv').config();
// 使用与update-product-review-status.js相同的数据库连接配置
const sequelize = new Sequelize(
process.env.DB_DATABASE || 'wechat_app',
process.env.DB_USER || 'root',
process.env.DB_PASSWORD === undefined ? null : process.env.DB_PASSWORD,
{
host: process.env.DB_HOST || 'localhost',
port: process.env.DB_PORT || 3306,
dialect: 'mysql',
pool: {
max: 10,
min: 0,
acquire: 30000,
idle: 10000
},
timezone: '+08:00' // 设置时区为UTC+8
}
);
async function fix() {
console.log('===== 开始修复重复货源问题 =====');
try {
// 连接数据库
await sequelize.authenticate();
console.log('数据库连接成功');
// 直接执行SQL更新reviewed状态为published
const [result] = await sequelize.query(
'UPDATE products SET status = "published", updated_at = NOW() WHERE status = "reviewed"'
);
console.log(`成功更新了 ${result.affectedRows} 个商品`);
console.log('===== 修复完成 =====');
console.log('1. 数据库中的商品状态已更新');
console.log('2. 请在小程序中下拉刷新页面查看效果');
console.log('3. 已解决手动更新数据库状态后重复货源的问题');
} catch (error) {
console.error('修复失败:', error.message);
console.error('请检查数据库连接和权限后重试');
} finally {
await sequelize.close();
}
}
fix();