修改部署脚本
This commit is contained in:
parent
a10829b788
commit
3ccb2b70ba
@ -28,18 +28,6 @@ docker compose logs -f
|
||||
docker compose down
|
||||
```
|
||||
|
||||
### 方式2:本地运行(需要 JDK 8)
|
||||
|
||||
```bash
|
||||
# 1. 编译
|
||||
mvn clean package
|
||||
|
||||
# 2. 运行
|
||||
java -jar target/adxp-adapter.jar \
|
||||
--adxp.host=localhost \
|
||||
--adxp.port=7001
|
||||
```
|
||||
|
||||
## API 文档
|
||||
|
||||
### 1. 登录
|
||||
@ -135,7 +123,6 @@ curl "http://localhost:8086/api/adxp/messages?sessionId=YOUR_SESSION_ID"
|
||||
| `ADXP_PORT` | ADXP 数据中台端口 | 7001 |
|
||||
| `ADXP_USERNAME` | ADXP 用户名 | dianxin |
|
||||
| `ADXP_PASSWORD` | ADXP 密码 | dianxin@123 |
|
||||
| `SPRING_PROFILES_ACTIVE` | Spring Profile | prod |
|
||||
|
||||
### application.yml
|
||||
|
||||
@ -152,11 +139,7 @@ adxp:
|
||||
### 开发环境
|
||||
|
||||
```bash
|
||||
# 1. 启动 mock ADXP 服务器
|
||||
cd /path/to/QAUP-Management/tools
|
||||
python3 mock_adxp.py --auto --interval 10
|
||||
|
||||
# 2. 启动适配器(默认指向 localhost)
|
||||
# 1. 启动适配器(默认指向 localhost)
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
|
||||
@ -1,51 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ADXP Adapter 启动脚本
|
||||
|
||||
# 项目路径
|
||||
PROJECT_DIR="$(pwd)"
|
||||
JAR_FILE="$PROJECT_DIR/target/adxp-adapter.jar"
|
||||
|
||||
# 检查项目目录是否存在
|
||||
if [ ! -d "$PROJECT_DIR" ]; then
|
||||
echo "❌ 项目目录不存在: $PROJECT_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 进入项目目录
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
# 检查JAR文件是否存在,如果不存在则编译
|
||||
if [ ! -f "$JAR_FILE" ]; then
|
||||
echo "🔨 正在编译adxp-adapter项目..."
|
||||
mvn clean package
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "❌ 编译失败"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 检查JAR文件是否存在
|
||||
if [ ! -f "$JAR_FILE" ]; then
|
||||
echo "❌ JAR文件不存在: $JAR_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🚀 正在启动ADXP Adapter服务..."
|
||||
echo "📄 JAR文件: $JAR_FILE"
|
||||
|
||||
# 启动服务
|
||||
java -jar "$JAR_FILE" &
|
||||
|
||||
# 等待几秒钟让服务启动
|
||||
sleep 5
|
||||
|
||||
# 检查服务是否启动成功
|
||||
if pgrep -f "adxp-adapter" > /dev/null; then
|
||||
echo "✅ ADXP Adapter服务启动成功"
|
||||
echo "🌐 WebSocket端点: ws://localhost:8086/ws/flight-notifications"
|
||||
echo "📊 健康检查: http://localhost:8086/actuator/health"
|
||||
else
|
||||
echo "❌ ADXP Adapter服务启动失败"
|
||||
exit 1
|
||||
fi
|
||||
@ -1,118 +0,0 @@
|
||||
# QAUP 构建打包指南
|
||||
|
||||
## 方案:macOS构建 + Ubuntu打包
|
||||
|
||||
### 开发环境操作(macOS)
|
||||
|
||||
#### 1. 构建jar文件
|
||||
```bash
|
||||
# 在项目根目录
|
||||
mvn clean package -DskipTests
|
||||
```
|
||||
|
||||
#### 2. 上传jar文件到打包服务器
|
||||
```bash
|
||||
# 方式一:使用scp
|
||||
scp qaup-admin/target/qaup-admin.jar code@your-server:/home/code/apps/QAUP_Management/qaup-admin/target/
|
||||
|
||||
# 方式二:使用自动化脚本(需要先配置服务器信息)
|
||||
./deploy/simple/build-and-upload.sh
|
||||
```
|
||||
|
||||
### 打包服务器操作(Ubuntu)
|
||||
|
||||
#### 1. 确认jar文件已上传
|
||||
```bash
|
||||
ls -la qaup-admin/target/qaup-admin.jar
|
||||
```
|
||||
|
||||
#### 2. 执行打包
|
||||
```bash
|
||||
./deploy/simple/package-server.sh
|
||||
```
|
||||
|
||||
#### 3. 下载部署包
|
||||
```bash
|
||||
# 生成的文件类似:qaup-deploy-20250105-143022.tar.gz
|
||||
ls -la qaup-deploy-*.tar.gz
|
||||
```
|
||||
|
||||
## 日常更新流程
|
||||
|
||||
### 程序更新(推荐)
|
||||
```bash
|
||||
# macOS开发环境
|
||||
mvn clean package -DskipTests
|
||||
scp qaup-admin/target/qaup-admin.jar production-server:/path/to/qaup-deploy/new-app.jar
|
||||
|
||||
# 生产服务器
|
||||
cd qaup-deploy
|
||||
./update.sh
|
||||
```
|
||||
|
||||
**注意:** 从v1.0.1版本开始,系统集成了Flyway数据库迁移功能:
|
||||
- 应用启动时会自动执行数据库迁移
|
||||
- 新版本的数据库结构变更会自动应用
|
||||
- 无需手动执行SQL脚本
|
||||
- 迁移失败时应用会启动失败,确保数据一致性
|
||||
|
||||
### 完整重新部署
|
||||
```bash
|
||||
# macOS → 打包服务器 → 生产服务器
|
||||
# 按照上述完整流程操作
|
||||
```
|
||||
|
||||
## 服务器配置要求
|
||||
|
||||
### 打包服务器(Ubuntu)
|
||||
- ✅ Docker已安装
|
||||
- ✅ 网络连接正常(拉取镜像)
|
||||
- ✅ 足够磁盘空间(约2GB)
|
||||
|
||||
### 生产服务器(Ubuntu)
|
||||
- ✅ Docker已安装
|
||||
- ✅ 解压工具(unzip)
|
||||
|
||||
## 故障排除
|
||||
|
||||
### Q: Docker拉取镜像很慢
|
||||
A: 使用国内镜像加速器,脚本已配置daocloud加速器
|
||||
|
||||
### Q: jar文件上传失败
|
||||
A: 检查网络连接和服务器路径是否正确
|
||||
|
||||
### Q: 打包过程中断
|
||||
A: 重新运行package-server.sh脚本,会自动清理并重新开始
|
||||
|
||||
### Q: 数据库迁移失败
|
||||
A: 检查应用日志中的Flyway错误信息:
|
||||
```bash
|
||||
docker compose logs qaup-app | grep -i flyway
|
||||
```
|
||||
常见问题:
|
||||
- 数据库连接失败:检查数据库服务是否正常
|
||||
- 迁移脚本错误:检查SQL语法和数据库权限
|
||||
- 版本冲突:可能需要手动修复迁移历史表
|
||||
|
||||
### Q: 应用启动失败(Flyway相关)
|
||||
A: 查看详细错误信息:
|
||||
```bash
|
||||
# 查看应用日志
|
||||
docker compose logs qaup-app
|
||||
|
||||
# 检查数据库迁移状态
|
||||
docker exec -it qaup-postgres psql -U qaup qaup -c "SELECT * FROM flyway_schema_history ORDER BY installed_rank;"
|
||||
```
|
||||
|
||||
## 脚本说明
|
||||
|
||||
### 开发环境脚本:
|
||||
- `build-and-upload.sh` - 自动构建和上传(需配置服务器信息)
|
||||
- 手动操作:`mvn package` + `scp`
|
||||
|
||||
### 打包服务器脚本:
|
||||
- `package-server.sh` - 使用已有jar文件进行打包
|
||||
|
||||
### 生产服务器脚本:
|
||||
- `deploy.sh` - 首次部署
|
||||
- `update.sh` - 程序更新
|
||||
@ -1,131 +1,117 @@
|
||||
# QAUP 系统部署和更新说明
|
||||
|
||||
## 开发环境操作
|
||||
|
||||
### 生成程序更新文件
|
||||
|
||||
当代码修改后,需要生成新的jar文件供客户更新:
|
||||
## 一、打包环境操作
|
||||
|
||||
### 1. 生成程序更新文件
|
||||
修改代码后,生成仅包含应用jar的更新包:
|
||||
```bash
|
||||
./deploy/simple/build-update.sh
|
||||
./deploy/package-update.sh
|
||||
```
|
||||
生成包含详细说明的更新包:
|
||||
**输出**:
|
||||
- `qaup-admin.jar` - 应用程序
|
||||
- `UPDATE-INSTRUCTIONS.md` - 详细更新说明
|
||||
- `UPDATE-INSTRUCTIONS.md` - 更新说明
|
||||
- `VERSION-INFO.txt` - 版本信息
|
||||
|
||||
**注意**:如果只需要jar文件,可以从生成的更新包中提取 `qaup-admin.jar` 文件单独发送给客户。
|
||||
**注意**:如需单独jar文件,可直接从更新包中提取。
|
||||
|
||||
### 生成完整部署包
|
||||
### 2. 生成完整部署包
|
||||
生成包含所有组件的完整部署包(首次部署或重大更新):
|
||||
```bash
|
||||
./deploy/simple/package.sh
|
||||
./deploy/package-all.sh
|
||||
```
|
||||
生成包含所有组件的完整部署包,用于首次部署或重大版本更新。
|
||||
|
||||
---
|
||||
|
||||
## 客户环境操作
|
||||
## 二、生产环境操作
|
||||
|
||||
### 首次部署
|
||||
### 1. 首次部署
|
||||
|
||||
### 1. 解压部署包
|
||||
```bash
|
||||
mkdir qaup-deploy
|
||||
tar -xzf qaup-deploy-20250105-143022.tar.gz -C qaup-deploy
|
||||
cd qaup-deploy
|
||||
```
|
||||
|
||||
### 2. 执行部署
|
||||
```bash
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
### 3. 验证部署
|
||||
```bash
|
||||
# 检查服务状态
|
||||
docker compose ps
|
||||
|
||||
# 访问系统
|
||||
curl http://localhost:8080/actuator/health
|
||||
```
|
||||
|
||||
## 程序更新(仅更新jar文件)
|
||||
|
||||
### 更新前准备
|
||||
|
||||
1. **确认当前系统状态**:
|
||||
#### 步骤
|
||||
1. **解压部署包**:
|
||||
```bash
|
||||
cd qaup-deploy
|
||||
docker compose ps
|
||||
mkdir qaup-deploy
|
||||
tar -xzf qaup-deploy-xxx.tar.gz -C qaup-deploy
|
||||
cd qaup-deploy
|
||||
```
|
||||
|
||||
2. **备份重要数据**(可选但推荐):
|
||||
2. **执行部署**:
|
||||
```bash
|
||||
# 备份数据库
|
||||
docker exec qaup-postgres pg_dump -U qaup qaup > backup-$(date +%Y%m%d).sql
|
||||
|
||||
# 备份配置文件
|
||||
cp config.yml config.yml.backup
|
||||
./deploy-all.sh
|
||||
```
|
||||
|
||||
### 更新步骤
|
||||
3. **验证部署**:
|
||||
```bash
|
||||
docker compose ps # 检查服务状态
|
||||
curl http://localhost:8080/actuator/health # 验证应用健康
|
||||
```
|
||||
|
||||
### 1. 准备新版本文件
|
||||
### 2. 程序更新(仅更新jar文件)
|
||||
|
||||
#### 如果收到的是完整更新包(.tar.gz文件):
|
||||
```bash
|
||||
# 解压更新包
|
||||
tar -xzf qaup-update-20250105-143022.tar.gz
|
||||
cd qaup-update-20250105-143022
|
||||
|
||||
# 查看更新说明
|
||||
cat UPDATE-INSTRUCTIONS.md
|
||||
|
||||
# 复制jar文件到部署目录
|
||||
cd ../qaup-deploy
|
||||
cp ../qaup-update-20250105-143022/qaup-admin.jar new-app.jar
|
||||
```
|
||||
|
||||
#### 如果收到的是jar文件:
|
||||
#### 前置准备
|
||||
```bash
|
||||
cd qaup-deploy
|
||||
cp /path/to/qaup-admin-20250105-143022.jar new-app.jar
|
||||
```
|
||||
|
||||
### 2. 执行程序更新
|
||||
```bash
|
||||
./update.sh
|
||||
```
|
||||
|
||||
### 3. 验证更新结果
|
||||
```bash
|
||||
# 检查服务状态
|
||||
# 1. 确认当前系统状态
|
||||
docker compose ps
|
||||
|
||||
# 检查应用日志
|
||||
docker compose logs -f qaup-app
|
||||
|
||||
# 访问系统确认功能正常
|
||||
curl http://localhost:8080/actuator/health
|
||||
# 2. 备份重要数据(推荐)
|
||||
docker exec qaup-postgres pg_dump -U qaup qaup > backup-$(date +%Y%m%d).sql
|
||||
cp config.yml config.yml.backup
|
||||
```
|
||||
|
||||
## 更新失败处理
|
||||
|
||||
如果更新失败,脚本会自动尝试回滚。如果自动回滚也失败:
|
||||
|
||||
### 手动回滚:
|
||||
#### 更新步骤
|
||||
```bash
|
||||
# 停止应用
|
||||
docker compose stop qaup-app
|
||||
# 1. 准备新版本文件(二选一)
|
||||
# 方案A:使用完整更新包
|
||||
cp /path/to/qaup-update-xxx/qaup-admin.jar new-app.jar
|
||||
|
||||
# 恢复备份文件
|
||||
# 方案B:直接使用jar文件
|
||||
cp /path/to/qaup-admin-xxx.jar new-app.jar
|
||||
|
||||
# 2. 执行更新
|
||||
./deploy-update.sh
|
||||
|
||||
# 3. 验证更新
|
||||
docker compose ps # 检查服务状态
|
||||
docker compose logs -f qaup-app # 查看应用日志
|
||||
curl http://localhost:8080/actuator/health # 验证应用健康
|
||||
```
|
||||
|
||||
### 3. 配置文件更新
|
||||
如果需要更新配置文件:
|
||||
```bash
|
||||
cd qaup-deploy
|
||||
|
||||
# 1. 备份当前配置
|
||||
cp config.yml config.yml.backup
|
||||
|
||||
# 2. 编辑配置文件
|
||||
vi config.yml
|
||||
|
||||
# 3. 重启应用
|
||||
docker compose restart qaup-app
|
||||
```
|
||||
|
||||
### 4. 更新失败处理
|
||||
|
||||
#### 自动回滚
|
||||
更新失败时脚本会自动尝试回滚。
|
||||
|
||||
#### 手动回滚
|
||||
```bash
|
||||
cd qaup-deploy
|
||||
|
||||
# 1. 停止应用
|
||||
docker compose stop qaup-app
|
||||
|
||||
# 2. 恢复备份文件
|
||||
cp app.jar.backup.* app.jar
|
||||
|
||||
# 启动应用
|
||||
docker compose start qaup-app
|
||||
# 3. 启动应用
|
||||
docker compose start qaup-app
|
||||
```
|
||||
|
||||
### 检查问题:
|
||||
#### 问题排查
|
||||
```bash
|
||||
# 查看应用日志
|
||||
docker compose logs qaup-app
|
||||
@ -134,137 +120,71 @@ docker compose logs qaup-app
|
||||
docker compose ps -a
|
||||
```
|
||||
|
||||
## 配置文件更新
|
||||
### 5. 完全重新部署
|
||||
如果需要重新部署整个系统(包括更新镜像、配置):
|
||||
|
||||
如果新版本需要更新配置文件:
|
||||
|
||||
1. **备份当前配置**:
|
||||
```bash
|
||||
cp config.yml config.yml.backup
|
||||
```
|
||||
|
||||
2. **更新配置**:
|
||||
```bash
|
||||
# 编辑配置文件
|
||||
vi config.yml
|
||||
```
|
||||
|
||||
3. **重启应用**:
|
||||
```bash
|
||||
docker compose restart qaup-app
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: 更新后无法访问系统
|
||||
A: 检查端口是否被占用,查看应用日志:
|
||||
#### 方案A:不保留数据
|
||||
```bash
|
||||
docker compose logs qaup-app
|
||||
cd qaup-deploy
|
||||
|
||||
# 1. 清理旧环境
|
||||
docker compose down
|
||||
rm -rf data/ # 注意:会删除所有数据
|
||||
|
||||
# 2. 重新部署
|
||||
./deploy-all.sh
|
||||
```
|
||||
|
||||
#### 方案B:保留数据
|
||||
```bash
|
||||
# 1. 备份旧数据
|
||||
cd qaup-deploy
|
||||
docker exec qaup-postgres pg_dump -U qaup qaup > ../data-backup.sql
|
||||
|
||||
# 2. 清理旧环境
|
||||
docker compose down
|
||||
|
||||
# 3. 部署新系统
|
||||
mkdir qaup-deploy-new
|
||||
tar -xzf qaup-deploy-new-xxx.tar.gz -C qaup-deploy-new
|
||||
cd qaup-deploy-new
|
||||
./deploy-all.sh
|
||||
|
||||
# 4. 恢复数据
|
||||
docker exec -i qaup-postgres psql -U qaup qaup < ../data-backup.sql
|
||||
```
|
||||
|
||||
## 三、常见问题
|
||||
|
||||
### Q: 更新后无法访问系统?
|
||||
A: 检查端口和应用日志:
|
||||
```bash
|
||||
docker compose logs qaup-app
|
||||
netstat -tlnp | grep 8080
|
||||
```
|
||||
|
||||
### Q: 数据库连接失败
|
||||
### Q: 数据库连接失败?
|
||||
A: 检查数据库服务状态:
|
||||
```bash
|
||||
docker compose logs qaup-postgres
|
||||
docker compose logs qaup-postgres
|
||||
docker exec qaup-postgres pg_isready -U qaup
|
||||
```
|
||||
|
||||
### Q: 如何完全重新部署
|
||||
A: 如果更新出现严重问题,可以重新部署:
|
||||
```bash
|
||||
# 停止所有服务
|
||||
docker compose down
|
||||
|
||||
# 清理数据(注意:这会删除所有数据)
|
||||
rm -rf data/
|
||||
|
||||
# 重新部署
|
||||
./deploy.sh
|
||||
## 四、更新记录
|
||||
建议记录每次更新信息:
|
||||
```
|
||||
时间 | 版本号 | 人员 | 类型 | 结果 | 问题
|
||||
2025-01-05 | v1.0.1→v1.0.2 | 张三 | 程序更新 | 成功 | -
|
||||
2025-01-10 | v1.0.2→v1.0.3 | 李四 | 程序更新 | 失败 | 配置错误,已回滚
|
||||
```
|
||||
|
||||
## 完整系统重新部署
|
||||
## 五、文件说明
|
||||
|
||||
如果需要重新部署整个系统(包括更新Docker镜像、配置等):
|
||||
### 打包环境脚本
|
||||
- `deploy/package-update.sh` - 生成程序更新包
|
||||
- `deploy/package-all.sh` - 生成完整部署包
|
||||
|
||||
### 1. 获取新的部署包
|
||||
```bash
|
||||
# 解压新的部署包到新目录
|
||||
mkdir qaup-deploy-new
|
||||
tar -xzf qaup-deploy-new-20250110-100000.tar.gz -C qaup-deploy-new
|
||||
cd qaup-deploy-new
|
||||
```
|
||||
|
||||
### 2. 迁移数据(如果需要保留数据)
|
||||
```bash
|
||||
# 从旧系统备份数据
|
||||
cd ../qaup-deploy
|
||||
docker exec qaup-postgres pg_dump -U qaup qaup > ../data-backup.sql
|
||||
|
||||
# 停止旧系统
|
||||
docker compose down
|
||||
|
||||
# 在新系统中恢复数据
|
||||
cd ../qaup-deploy-new
|
||||
./deploy.sh
|
||||
docker exec -i qaup-postgres psql -U qaup qaup < ../data-backup.sql
|
||||
```
|
||||
|
||||
## 操作流程总结
|
||||
|
||||
### 开发环境 → 客户环境流程
|
||||
|
||||
#### 程序更新流程:
|
||||
```
|
||||
开发环境:
|
||||
1. 代码修改完成
|
||||
2. ./deploy/simple/build-update.sh # 生成更新包
|
||||
3. 发送更新包或jar文件给客户
|
||||
|
||||
客户环境:
|
||||
1. cd qaup-deploy
|
||||
2. cp new-jar-file.jar new-app.jar # 重命名文件
|
||||
3. ./update.sh # 执行更新
|
||||
4. 验证更新结果
|
||||
```
|
||||
|
||||
#### 完整部署流程:
|
||||
```
|
||||
开发环境:
|
||||
1. ./deploy/simple/package.sh # 生成完整部署包
|
||||
2. 发送部署包给客户
|
||||
|
||||
客户环境:
|
||||
1. mkdir qaup-deploy && tar -xzf qaup-deploy-xxx.tar.gz -C qaup-deploy # 解压部署包
|
||||
2. cd qaup-deploy
|
||||
3. ./deploy.sh # 执行部署
|
||||
4. 验证部署结果
|
||||
```
|
||||
|
||||
## 更新记录
|
||||
|
||||
建议记录每次更新的信息:
|
||||
- 更新时间
|
||||
- 版本号
|
||||
- 更新人员
|
||||
- 更新类型(程序更新/完整部署)
|
||||
- 是否成功
|
||||
- 遇到的问题
|
||||
|
||||
示例:
|
||||
```
|
||||
2025-01-05 14:30 - v1.0.1 → v1.0.2 - 张三 - 程序更新 - 成功
|
||||
2025-01-10 09:15 - v1.0.2 → v1.0.3 - 李四 - 程序更新 - 失败,已回滚
|
||||
2025-01-15 16:00 - v1.0.3 → v1.1.0 - 王五 - 完整部署 - 成功
|
||||
```
|
||||
|
||||
## 文件说明
|
||||
|
||||
### 开发环境脚本:
|
||||
- `deploy/simple/build-update.sh` - 生成程序更新包
|
||||
- `deploy/simple/package.sh` - 生成完整部署包
|
||||
|
||||
### 客户环境脚本:
|
||||
- `deploy.sh` - 首次部署脚本
|
||||
- `update.sh` - 程序更新脚本
|
||||
### 生产环境脚本
|
||||
- `deploy-all.sh` - 首次部署/完全重新部署
|
||||
- `deploy-update.sh` - 程序更新脚本
|
||||
- `DeployGuide.md` - 本说明文档
|
||||
@ -1,65 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# QAUP macOS构建和上传脚本
|
||||
# 在macOS开发环境运行,构建jar并上传到打包服务器
|
||||
|
||||
set -e
|
||||
|
||||
# 配置打包服务器信息(请根据实际情况修改)
|
||||
PACK_SERVER_HOST="10.0.0.58"
|
||||
PACK_SERVER_USER="code"
|
||||
PACK_SERVER_PATH="/home/code/apps/QAUP_Management"
|
||||
|
||||
# 颜色输出
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
print_message() {
|
||||
echo -e "${1}${2}${NC}"
|
||||
}
|
||||
|
||||
print_message $BLUE "=== QAUP macOS构建和上传脚本 ==="
|
||||
|
||||
# 1. 构建应用
|
||||
print_message $BLUE "构建应用..."
|
||||
mvn clean package -DskipTests -q
|
||||
|
||||
# 检查构建结果
|
||||
JAR_FILE="qaup-admin/target/qaup-admin.jar"
|
||||
if [ ! -f "$JAR_FILE" ]; then
|
||||
print_message $RED "❌ jar文件构建失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
print_message $GREEN "✓ jar文件构建成功"
|
||||
|
||||
# 2. 上传jar文件到打包服务器
|
||||
print_message $BLUE "上传jar文件到打包服务器..."
|
||||
|
||||
# 检查是否配置了服务器信息
|
||||
if [ "$PACK_SERVER_HOST" = "your-pack-server" ]; then
|
||||
print_message $RED "❌ 请先配置打包服务器信息"
|
||||
echo "编辑脚本,修改以下变量:"
|
||||
echo "PACK_SERVER_HOST=\"your-pack-server-ip\""
|
||||
echo "PACK_SERVER_USER=\"your-username\""
|
||||
echo "PACK_SERVER_PATH=\"/path/to/QAUP_Management\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 上传jar文件
|
||||
scp "$JAR_FILE" "$PACK_SERVER_USER@$PACK_SERVER_HOST:$PACK_SERVER_PATH/qaup-admin/target/"
|
||||
|
||||
print_message $GREEN "✓ jar文件上传成功"
|
||||
|
||||
# 3. 在打包服务器上执行打包
|
||||
print_message $BLUE "在打包服务器上执行打包..."
|
||||
ssh "$PACK_SERVER_USER@$PACK_SERVER_HOST" "cd $PACK_SERVER_PATH && ./deploy/simple/package-server.sh"
|
||||
|
||||
print_message $GREEN "✅ 完整打包流程完成"
|
||||
|
||||
echo ""
|
||||
echo "下一步操作:"
|
||||
echo "1. 从打包服务器下载生成的 qaup-deploy-*.tar.gz 文件"
|
||||
echo "2. 将部署包传输到生产服务器进行部署"
|
||||
@ -1,71 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 创建简化的数据库初始化脚本
|
||||
# 从现有的数据库架构文件生成init.sql
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
|
||||
echo "=== 创建数据库初始化脚本 ==="
|
||||
|
||||
# 输出文件
|
||||
INIT_SQL="$SCRIPT_DIR/init.sql"
|
||||
|
||||
# 创建初始化脚本
|
||||
cat > "$INIT_SQL" << 'EOF'
|
||||
-- QAUP 数据库初始化脚本
|
||||
-- 简化版本:只创建必要的扩展和导入数据
|
||||
|
||||
-- 创建PostGIS扩展
|
||||
CREATE EXTENSION IF NOT EXISTS postgis;
|
||||
CREATE EXTENSION IF NOT EXISTS postgis_topology;
|
||||
|
||||
-- 显示扩展信息
|
||||
SELECT 'PostGIS扩展安装完成' as message;
|
||||
|
||||
EOF
|
||||
|
||||
# 如果存在数据库架构文件,追加到初始化脚本
|
||||
SCHEMA_FILE="$PROJECT_ROOT/deploy/docker/postgres/qaup_database_schema.sql"
|
||||
if [ -f "$SCHEMA_FILE" ]; then
|
||||
echo "-- 导入数据库架构" >> "$INIT_SQL"
|
||||
cat "$SCHEMA_FILE" >> "$INIT_SQL"
|
||||
echo "✓ 已添加数据库架构"
|
||||
else
|
||||
echo "⚠ 未找到数据库架构文件: $SCHEMA_FILE"
|
||||
fi
|
||||
|
||||
# 添加完整初始数据(优先使用完整数据文件)
|
||||
COMPLETE_DATA_FILE="$PROJECT_ROOT/deploy/docker/postgres/export/initial_data_complete.sql"
|
||||
if [ -f "$COMPLETE_DATA_FILE" ]; then
|
||||
echo "" >> "$INIT_SQL"
|
||||
echo "-- 导入完整初始数据" >> "$INIT_SQL"
|
||||
cat "$COMPLETE_DATA_FILE" >> "$INIT_SQL"
|
||||
echo "✓ 已添加完整初始数据文件"
|
||||
else
|
||||
echo "⚠ 未找到完整初始数据文件: $COMPLETE_DATA_FILE"
|
||||
echo "-- 注意:数据库将只包含基础结构,无初始数据" >> "$INIT_SQL"
|
||||
fi
|
||||
|
||||
# 添加完成信息
|
||||
cat >> "$INIT_SQL" << 'EOF'
|
||||
|
||||
-- 显示数据库信息
|
||||
SELECT
|
||||
current_database() as database_name,
|
||||
current_user as current_user,
|
||||
version() as postgresql_version;
|
||||
|
||||
-- 显示表数量
|
||||
SELECT
|
||||
schemaname,
|
||||
COUNT(*) as table_count
|
||||
FROM pg_tables
|
||||
WHERE schemaname = 'public'
|
||||
GROUP BY schemaname;
|
||||
|
||||
SELECT 'QAUP数据库初始化完成' as message;
|
||||
EOF
|
||||
|
||||
echo "✅ 初始化脚本创建完成: $INIT_SQL"
|
||||
echo "文件大小: $(du -sh "$INIT_SQL" | cut -f1)"
|
||||
67
deploy/database-init.sh
Executable file
67
deploy/database-init.sh
Executable file
@ -0,0 +1,67 @@
|
||||
#!/bin/bash
|
||||
|
||||
# QAUP 数据库初始化脚本
|
||||
# 直接执行完整的数据库初始化SQL文件
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
|
||||
echo "=== QAUP 数据库初始化脚本 ==="
|
||||
echo "版本: 1.0.0"
|
||||
echo "日期: $(date +%Y-%m-%d %H:%M:%S)"
|
||||
echo ""
|
||||
|
||||
# 检查必要文件是否存在
|
||||
COMPLETE_INIT_FILE="$SCRIPT_DIR/qaup_database_export.sql"
|
||||
if [ ! -f "$COMPLETE_INIT_FILE" ]; then
|
||||
echo "❌ 错误: 未找到完整数据库初始化文件"
|
||||
echo " 文件路径: $COMPLETE_INIT_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ 找到完整数据库初始化文件: $COMPLETE_INIT_FILE"
|
||||
echo " 文件大小: $(du -sh "$COMPLETE_INIT_FILE" | cut -f1)"
|
||||
echo ""
|
||||
|
||||
# 检查PostgreSQL是否可用
|
||||
if ! command -v psql &> /dev/null; then
|
||||
echo "❌ 错误: PostgreSQL客户端(psql)未安装或未在PATH中"
|
||||
echo " 请确保已安装PostgreSQL并配置环境变量"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ PostgreSQL客户端已检测到: $(psql --version | head -1)"
|
||||
echo ""
|
||||
|
||||
# 设置默认数据库信息
|
||||
DEFAULT_DB="qaup"
|
||||
DEFAULT_USER="qaup"
|
||||
|
||||
# 询问用户数据库连接信息
|
||||
read -p "请输入数据库名称(默认: $DEFAULT_DB): " DB_NAME
|
||||
DB_NAME=${DB_NAME:-$DEFAULT_DB}
|
||||
|
||||
read -p "请输入数据库用户名(默认: $DEFAULT_USER): " DB_USER
|
||||
DB_USER=${DB_USER:-$DEFAULT_USER}
|
||||
|
||||
read -s -p "请输入数据库密码: " DB_PASSWORD
|
||||
echo ""
|
||||
|
||||
# 连接并执行初始化脚本
|
||||
echo "开始执行数据库初始化..."
|
||||
echo "========================================="
|
||||
|
||||
PGPASSWORD="$DB_PASSWORD" psql -U "$DB_USER" -d "$DB_NAME" -f "$COMPLETE_INIT_FILE" 2>&1 | grep -v "NOTICE"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "========================================="
|
||||
echo "✅ 数据库初始化成功完成!"
|
||||
echo " 数据库: $DB_NAME"
|
||||
echo " 用户: $DB_USER"
|
||||
else
|
||||
echo "========================================="
|
||||
echo "❌ 数据库初始化失败!"
|
||||
echo " 请检查连接信息和数据库权限"
|
||||
echo " 确保数据库已经创建: createdb -U $DB_USER $DB_NAME"
|
||||
exit 1
|
||||
fi
|
||||
@ -40,7 +40,7 @@ if curl -f -s http://localhost:8080/actuator/health > /dev/null 2>&1; then
|
||||
echo " 查看状态: docker compose ps"
|
||||
echo " 查看日志: docker compose logs -f qaup-app"
|
||||
echo " 停止服务: docker compose down"
|
||||
echo " 升级应用: ./update.sh"
|
||||
echo " 升级应用: ./deploy-update.sh"
|
||||
else
|
||||
echo "❌ 服务启动失败,请检查日志:"
|
||||
docker compose logs
|
||||
@ -52,21 +52,16 @@ docker save $POSTGRES_IMAGE $REDIS_IMAGE $OPENJDK_IMAGE | gzip > qaup-deploy/ima
|
||||
# 复制必要文件
|
||||
print_message $BLUE "准备部署文件..."
|
||||
cp "$JAR_FILE" qaup-deploy/app.jar
|
||||
cp deploy/simple/docker-compose.yml qaup-deploy/
|
||||
cp deploy/simple/config.yml qaup-deploy/
|
||||
cp deploy/docker-compose.yml qaup-deploy/
|
||||
cp deploy/config.yml qaup-deploy/
|
||||
cp deploy/deploy-all.sh qaup-deploy/
|
||||
cp deploy/deploy-update.sh qaup-deploy/
|
||||
|
||||
# 复制数据库相关文件
|
||||
mkdir -p qaup-deploy/sql
|
||||
cp deploy/docker/postgres/qaup_database_schema.sql qaup-deploy/sql/ 2>/dev/null || echo "⚠ 数据库架构文件不存在"
|
||||
cp deploy/docker/postgres/export/initial_data_complete.sql qaup-deploy/sql/ 2>/dev/null || echo "⚠ 完整初始数据文件不存在"
|
||||
cp deploy/qaup_database_export.sql qaup-deploy/qaup_database_export.sql 2>/dev/null || echo "⚠ 完整初始数据文件不存在"
|
||||
cp deploy/database-init.sh qaup-deploy/ 2>/dev/null || echo "⚠ 数据库初始化脚本不存在"
|
||||
|
||||
# 创建数据库初始化脚本
|
||||
./deploy/simple/create-init-sql.sh
|
||||
cp deploy/simple/init.sql qaup-deploy/
|
||||
|
||||
cp deploy/simple/deploy.sh qaup-deploy/
|
||||
cp deploy/simple/update.sh qaup-deploy/
|
||||
cp deploy/simple/DeployGuide.md qaup-deploy/
|
||||
cp deploy/DeployGuide.md qaup-deploy/
|
||||
|
||||
# 创建部署包
|
||||
PACKAGE_NAME="qaup-deploy-$(date +%Y%m%d-%H%M%S).tar.gz"
|
||||
@ -79,4 +74,4 @@ echo ""
|
||||
echo "部署说明:"
|
||||
echo "1. 将 $PACKAGE_NAME 传输到目标服务器"
|
||||
echo "2. mkdir qaup-deploy && tar -xzf $PACKAGE_NAME -C qaup-deploy"
|
||||
echo "3. cd qaup-deploy && ./deploy.sh"
|
||||
echo "3. cd qaup-deploy && ./deploy-all.sh"
|
||||
@ -60,7 +60,7 @@ cp qaup-admin.jar new-app.jar
|
||||
|
||||
### 3. 执行更新
|
||||
```bash
|
||||
./update.sh
|
||||
./deploy-update.sh
|
||||
```
|
||||
|
||||
### 4. 验证更新
|
||||
Loading…
Reference in New Issue
Block a user