xlcp/deploy/scripts/init-db.sh
tangweijie bc40155ef0 chore: 添加部署配置及文档
- 新增 deploy/ 目录包含 Docker 部署配置、数据库脚本、部署脚本
- 更新 .gitignore 忽略 deploy 构建产物
- 添加 AGENTS.md AI Agent 指南
- 添加项目构建脚本 build.sh
2026-01-22 21:10:49 +08:00

95 lines
2.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
# 日志函数
log_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 检查 MySQL 连接
check_mysql() {
local mysql_host="${MYSQL_HOST:-localhost}"
local mysql_port="${MYSQL_PORT:-3306}"
local mysql_user="${MYSQL_USER:-root}"
local mysql_password="${MYSQL_PASSWORD:-Prison2024!@}"
log_info "检查 MySQL 连接..."
if ! docker exec xlcp-mysql mysqladmin ping -h "$mysql_host" -P "$mysql_port" -u "$mysql_user" -p"$mysql_password" 2>/dev/null; then
log_error "无法连接到 MySQL"
exit 1
fi
log_success "MySQL 连接正常"
}
# 初始化数据库
init_database() {
log_info "初始化数据库..."
docker exec -i xlcp-mysql mysql -u root -p"${MYSQL_PASSWORD:-Prison2024!@}" prison < ./sql/prison_schema.sql || {
log_error "数据库初始化失败"
exit 1
}
log_success "数据库初始化完成"
}
# 验证数据库
verify_database() {
log_info "验证数据库表结构..."
local table_count=$(docker exec xlcp-mysql mysql -u root -p"${MYSQL_PASSWORD:-Prison2024!@}" prison -e "SHOW TABLES;" 2>/dev/null | wc -l)
if [ "$table_count" -lt 10 ]; then
log_error "数据库表数量异常: $table_count"
exit 1
fi
log_success "数据库验证通过 (共 $table_count 张表)"
}
# 主函数
main() {
log_info "========================================="
log_info "XL监狱综合管理平台 - 数据库初始化"
log_info "========================================="
# 切换到脚本所在目录的上级目录deploy 目录)
cd "$(dirname "$0")/.."
# 检查 MySQL
check_mysql
# 初始化数据库
read -p "是否初始化数据库? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
init_database
fi
# 验证数据库
verify_database
log_success "========================================="
log_success "数据库初始化完成!"
log_success "========================================="
}
main "$@"