#!/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)"