Files
nxxmdata/scripts

执行脚本目录

本目录包含宁夏智慧养殖监管平台的运维脚本和工具脚本。

📋 脚本索引

🗄️ 数据库管理

🔗 连接测试

🚀 脚本使用方法

数据库初始化

# 初始化数据库结构和基础数据
node scripts/init-db.js

# 或者在backend目录下使用npm脚本
cd backend
npm run init-db

数据库迁移管理

# 运行所有未执行的迁移
node scripts/migration-manager.js up

# 回滚最后一次迁移
node scripts/migration-manager.js down

# 查看迁移状态
node scripts/migration-manager.js status

种子数据管理

# 填充所有种子数据
node scripts/seed-manager.js all

# 填充特定种子数据
node scripts/seed-manager.js users
node scripts/seed-manager.js farms

# 清空种子数据
node scripts/seed-manager.js clear

连接测试

# 测试数据库连接
node scripts/test-connection.js

# 测试百度地图API连接
node scripts/test-map-api.js

⚙️ 环境要求

运行这些脚本需要:

  1. Node.js 18.0+ - JavaScript运行环境
  2. MySQL 8.0+ - 数据库服务
  3. 环境变量配置 - 正确配置的.env文件

🔧 配置说明

环境变量

脚本依赖以下环境变量通常在backend/.env文件中配置

# 数据库配置
DB_HOST=localhost
DB_PORT=3306
DB_NAME=nxxmdata
DB_USER=root
DB_PASSWORD=your_password

# 百度地图API配置
BAIDU_MAP_API_KEY=your_api_key

# 其他配置
NODE_ENV=development

权限要求

  • 数据库用户需要有创建、删除、修改表的权限
  • 百度地图API密钥需要有效且未超过调用限制

📊 日志和输出

脚本运行时会输出详细的日志信息:

  • 成功操作以绿色显示
  • 错误信息以红色显示
  • ⚠️ 警告信息以黄色显示
  • 信息性消息以蓝色显示

🛡️ 安全注意事项

  1. 生产环境: 在生产环境运行脚本前务必备份数据
  2. 权限控制: 确保脚本执行用户具有必要的最小权限
  3. 敏感数据: 不要在脚本中硬编码敏感信息
  4. 审计日志: 生产环境执行脚本应记录详细的审计日志

🔄 脚本开发规范

如需新增脚本,请遵循以下规范:

文件命名

  • 使用 kebab-case 命名: example-script.js
  • 功能明确的描述性名称
  • 按功能分类存放

代码结构

#!/usr/bin/env node

/**
 * 脚本功能说明
 * 用法: node scripts/example-script.js [参数]
 */

const path = require('path');
const { logger } = require('../backend/utils/logger');

// 主要功能函数
async function main() {
  try {
    // 脚本逻辑
    logger.info('脚本执行成功');
  } catch (error) {
    logger.error('脚本执行失败:', error);
    process.exit(1);
  }
}

// 如果直接运行脚本则执行main函数
if (require.main === module) {
  main();
}

module.exports = { main };

错误处理

  • 使用统一的日志记录
  • 合适的错误码退出
  • 详细的错误信息输出

📞 支持和帮助

如果在使用脚本过程中遇到问题:

  1. 检查环境变量配置是否正确
  2. 确认数据库连接是否正常
  3. 查看脚本输出的错误信息
  4. 参考项目文档或联系技术支持

最后更新: 2025年1月