71 lines
2.0 KiB
Bash
71 lines
2.0 KiB
Bash
#!/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)" |