- 新增 deploy/ 目录包含 Docker 部署配置、数据库脚本、部署脚本 - 更新 .gitignore 忽略 deploy 构建产物 - 添加 AGENTS.md AI Agent 指南 - 添加项目构建脚本 build.sh
95 lines
2.2 KiB
Bash
Executable File
95 lines
2.2 KiB
Bash
Executable File
#!/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 "$@"
|