95 lines
2.6 KiB
Bash
Executable File
95 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 设备模块数据库脚本执行
|
|
# 执行前请确保数据库服务正在运行
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
DDL_FILE="$PROJECT_DIR/module-mdm/src/main/resources/db/migration/V20260325__create_equipment_tables.sql"
|
|
MIGRATION_FILE="$PROJECT_DIR/module-mdm/src/main/resources/db/migration/V20260326__migrate_equipment_data.sql"
|
|
|
|
# 数据库连接参数
|
|
DB_HOST="localhost"
|
|
DB_PORT="5432"
|
|
DB_NAME="ether_pms"
|
|
DB_USER="chiguyong"
|
|
|
|
echo "=========================================="
|
|
echo "设备模块数据库脚本执行"
|
|
echo "=========================================="
|
|
|
|
# 检查psql是否可用
|
|
if ! command -v psql &> /dev/null; then
|
|
echo "错误: psql 未安装或不在PATH中"
|
|
echo "请安装PostgreSQL客户端: brew install postgresql"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查DDL文件是否存在
|
|
if [ ! -f "$DDL_FILE" ]; then
|
|
echo "错误: DDL文件不存在: $DDL_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
# 1. 执行DDL脚本
|
|
echo ""
|
|
echo "[1/2] 执行设备表DDL脚本..."
|
|
echo "文件: $DDL_FILE"
|
|
echo ""
|
|
|
|
psql -h "$DB_HOST" -p "$DB_PORT" -d "$DB_NAME" -U "$DB_USER" -f "$DDL_FILE"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo ""
|
|
echo "✅ DDL脚本执行成功"
|
|
else
|
|
echo ""
|
|
echo "❌ DDL脚本执行失败"
|
|
exit 1
|
|
fi
|
|
|
|
# 2. 询问是否执行数据迁移
|
|
echo ""
|
|
echo "=========================================="
|
|
read -p "是否执行数据迁移脚本? (y/N): " CONFIRM_MIGRATION
|
|
echo "=========================================="
|
|
|
|
if [ "$CONFIRM_MIGRATION" = "y" ] || [ "$CONFIRM_MIGRATION" = "Y" ]; then
|
|
if [ ! -f "$MIGRATION_FILE" ]; then
|
|
echo "错误: 迁移文件不存在: $MIGRATION_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "[2/2] 执行数据迁移脚本..."
|
|
echo "文件: $MIGRATION_FILE"
|
|
echo ""
|
|
|
|
# 注意:迁移脚本中的函数需要手动调用
|
|
# 这里只执行函数创建,实际迁移需要单独执行
|
|
psql -h "$DB_HOST" -p "$DB_PORT" -d "$DB_NAME" -U "$DB_USER" -f "$MIGRATION_FILE"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo ""
|
|
echo "✅ 迁移脚本执行成功"
|
|
echo ""
|
|
echo "注意: 实际数据迁移需要执行以下SQL:"
|
|
echo " SELECT migrate_equipment_from_space_node();"
|
|
echo ""
|
|
echo "如需回滚,执行:"
|
|
echo " SELECT rollback_equipment_migration();"
|
|
else
|
|
echo ""
|
|
echo "❌ 迁移脚本执行失败"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo ""
|
|
echo "跳过了数据迁移"
|
|
fi
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "脚本执行完成"
|
|
echo "=========================================="
|