# 数据库合并方案
文件名：数据库合并方案_20250115.md
创建于：2025-01-15
创建者：AI

# 任务描述
将CollisionAvoidanceSystem项目的空间数据表合并到QAUP-Management项目数据库中，实现统一的数据库架构。

# 项目概述
QAUP-Management是车辆管理系统，CollisionAvoidanceSystem是机场碰撞避免系统。两个项目都使用PostgreSQL数据库，表结构完全互补，无冲突。

---
*以下部分由 AI 在协议执行过程中维护*
---

# 分析 (由 RESEARCH 模式填充)

## 数据库现状分析
**QAUP-Management数据库：**
- 基于PostgreSQL的传统业务表
- 表前缀：sys_*
- 核心表：sys_vehicle_info（车辆信息）、sys_driver_info（驾驶员信息）、sys_vehicle_type（车辆类型）
- 技术栈：PostgreSQL + MyBatis

**CollisionAvoidanceSystem数据库：**
- 基于PostgreSQL + PostGIS的空间数据表
- 核心表：vehicle_locations（车辆位置）、airport_areas（机场区域）、spatial_rules（规则引擎）
- 技术栈：PostgreSQL + PostGIS + JPA

## 兼容性评估
✅ **完全兼容**：
- 无表名冲突
- 无数据类型冲突
- 业务逻辑互补
- 可通过vehicle_id字段关联

# 提议的解决方案 (由 INNOVATE 模式填充)

## 方案选择：零风险直接合并
经过分析，发现两个数据库可以**无缝合并**，采用最简单的直接合并方案：

**核心思路：**
1. 在QAUP数据库中启用PostGIS扩展
2. 直接导入CollisionAvoidanceSystem的所有表结构
3. 建立业务关联关系
4. 保持两套API服务独立运行

**优势：**
- 零风险：无需修改现有表结构
- 零冲突：表名完全不重复
- 高效率：一次性完成所有迁移
- 可扩展：为未来功能集成预留空间

# 实施计划 (由 PLAN 模式生成)

## 详细执行步骤

### 步骤1：环境准备
- 备份QAUP-Management数据库
- 在QAUP数据库中启用PostGIS扩展

### 步骤2：表结构迁移
- 创建统一迁移脚本
- 导入CollisionAvoidanceSystem的完整表结构
- 验证表创建和索引

### 步骤3：数据关联设计
- 建立车辆信息关联关系
- 创建业务视图简化查询
- 添加必要的外键约束

### 步骤4：测试验证
- 验证空间查询功能
- 测试业务关联查询
- 确认数据完整性

实施检查清单：
1. 备份QAUP-Management现有数据库
2. 在QAUP数据库中启用PostGIS扩展 (CREATE EXTENSION postgis;)
3. 创建统一的数据库迁移脚本文件
4. 执行CollisionAvoidanceSystem表结构导入
5. 创建车辆信息映射关系（vehicle_id关联）
6. 添加业务查询视图
7. 执行完整性测试和空间查询测试

# 当前执行步骤 (由 EXECUTE 模式在开始执行某步骤时更新)
> 已完成数据库配置更新

# 任务进度 (由 EXECUTE 模式在每步完成后追加)

**[2025-01-15]**
- 步骤：创建统一数据库迁移脚本
- 修改：创建文件 QAUP-Management/sql/unified_database_migration.sql
- 更改摘要：完整的数据库合并脚本，包含PostGIS扩展、表结构、索引、视图、触发器和示例数据
- 原因：执行计划步骤 [2,3]
- 阻碍：无
- 用户确认状态：成功

**[2025-01-15]**
- 步骤：更新数据库配置为统一的"qaup"数据库
- 修改：
  - QAUP-Management/qaup-admin/src/main/resources/application-druid.yml：数据库URL更新为qaup
  - CollisionAvoidanceSystem/src/main/resources/application.yml：数据库URL更新为qaup  
  - CollisionAvoidanceSystem/src/test/resources/application-test.yml：测试数据库URL更新为qaup
  - QAUP-Management/sql/database_merge_guide.md：指南中的数据库名称更新为qaup
  - 新增：QAUP-Management/sql/create_qaup_database.sql：创建数据库脚本
- 更改摘要：统一两个项目使用同一个"qaup"数据库，更新所有相关配置文件和文档
- 原因：执行计划步骤 [4,5]
- 阻碍：无
- 用户确认状态：待确认

# 最终审查 (由 REVIEW 模式填充)
*待完成* 