- 添加 Dockerfile 与多套 docker-compose 配置(开发/生产环境) - 集成 Laravel Octane (Swoole) 提升性能 - 新增健康检查、监控脚本及部署文档 - 新增 Docker 镜像离线导入包(MySQL/Redis/Meilisearch) - 优化文档转换、预览服务及队列任务 - 添加 CreateAdminUser 命令与路由健康检查接口 - 新增 Swoole 队列兼容性测试套件 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
97 lines
2.7 KiB
Bash
Executable File
97 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 数据持久化测试脚本
|
|
# 验证所有数据卷映射是否正确配置
|
|
|
|
set -e
|
|
|
|
echo "开始测试数据持久化配置..."
|
|
|
|
# 检查存储目录是否存在
|
|
check_directory() {
|
|
local dir=$1
|
|
local description=$2
|
|
|
|
if [ -d "$dir" ]; then
|
|
echo "✓ $description 目录存在: $dir"
|
|
return 0
|
|
else
|
|
echo "✗ $description 目录不存在: $dir"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# 检查docker-compose配置中的卷映射
|
|
check_volume_mapping() {
|
|
local volume_name=$1
|
|
local description=$2
|
|
|
|
if docker-compose config | grep -q "$volume_name"; then
|
|
echo "✓ $description 卷映射已配置: $volume_name"
|
|
return 0
|
|
else
|
|
echo "✗ $description 卷映射未配置: $volume_name"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
echo ""
|
|
echo "检查存储目录结构..."
|
|
|
|
# 检查所有必要的存储目录
|
|
check_directory "storage/mysql" "MySQL数据库存储"
|
|
check_directory "storage/redis" "Redis缓存存储"
|
|
check_directory "storage/meilisearch" "Meilisearch搜索存储"
|
|
check_directory "storage/app" "Laravel应用存储"
|
|
check_directory "storage/app/private/documents" "文档上传存储"
|
|
check_directory "storage/app/public" "公共文件存储"
|
|
check_directory "storage/logs" "日志存储"
|
|
check_directory "storage/logs/app" "应用日志存储"
|
|
check_directory "storage/logs/queue" "队列日志存储"
|
|
|
|
echo ""
|
|
echo "检查Docker Compose卷映射配置..."
|
|
|
|
# 检查所有卷映射配置
|
|
check_volume_mapping "mysql_data" "MySQL数据"
|
|
check_volume_mapping "redis_data" "Redis数据"
|
|
check_volume_mapping "meilisearch_data" "Meilisearch数据"
|
|
check_volume_mapping "storage_data" "应用存储数据"
|
|
check_volume_mapping "documents_data" "文档存储数据"
|
|
check_volume_mapping "public_data" "公共文件数据"
|
|
check_volume_mapping "app_logs" "应用日志"
|
|
check_volume_mapping "queue_logs" "队列日志"
|
|
check_volume_mapping "laravel_logs" "Laravel日志"
|
|
|
|
echo ""
|
|
echo "检查目录权限..."
|
|
|
|
# 检查关键目录的权限
|
|
for dir in storage/mysql storage/redis storage/meilisearch storage/app storage/logs; do
|
|
if [ -d "$dir" ]; then
|
|
perms=$(stat -f "%A" "$dir" 2>/dev/null || stat -c "%a" "$dir" 2>/dev/null || echo "unknown")
|
|
echo "✓ $dir 权限: $perms"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "数据持久化配置测试完成!"
|
|
|
|
# 创建测试文件验证映射
|
|
echo ""
|
|
echo "创建测试文件验证目录映射..."
|
|
|
|
test_file="storage/app/test-persistence-$(date +%s).txt"
|
|
echo "测试数据持久化配置 - $(date)" > "$test_file"
|
|
|
|
if [ -f "$test_file" ]; then
|
|
echo "✓ 测试文件创建成功: $test_file"
|
|
rm "$test_file"
|
|
echo "✓ 测试文件清理完成"
|
|
else
|
|
echo "✗ 测试文件创建失败"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "所有数据持久化配置检查通过!" |