feat: 归档旧迁移文件,创建初始化数据迁移和重置脚本

This commit is contained in:
2026-04-14 11:24:35 +08:00
parent c35542f911
commit 5e9e41db21
231 changed files with 106 additions and 0 deletions

40
scripts/reset_db.sh Executable file
View File

@@ -0,0 +1,40 @@
#!/bin/bash
# 重置数据库到干净状态(仅用于开发/测试环境)
# 用途:将数据库从任意状态重置为全新的生产基线
# 警告:此操作会清空所有数据,不可恢复!
set -e
DB_NAME="${JUNHONG_DATABASE_DBNAME:-junhong_cmp}"
DB_HOST="${JUNHONG_DATABASE_HOST:-localhost}"
DB_PORT="${JUNHONG_DATABASE_PORT:-5432}"
DB_USER="${JUNHONG_DATABASE_USER:-postgres}"
DB_PASSWORD="${JUNHONG_DATABASE_PASSWORD:-}"
if [ -z "$DB_HOST" ] || [ -z "$DB_USER" ] || [ -z "$DB_NAME" ]; then
echo "错误:必须设置以下环境变量:"
echo " JUNHONG_DATABASE_HOST"
echo " JUNHONG_DATABASE_USER"
echo " JUNHONG_DATABASE_DBNAME"
exit 1
fi
DB_DSN="postgres://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}?sslmode=disable"
ADMIN_DSN="postgres://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/postgres?sslmode=disable"
echo "警告:即将清空数据库 ${DB_NAME}${DB_HOST}:${DB_PORT}5 秒后继续..."
echo "按 Ctrl+C 取消"
sleep 5
echo "正在删除数据库 ${DB_NAME}..."
PGPASSWORD="${DB_PASSWORD}" psql "${ADMIN_DSN}" -c "DROP DATABASE IF EXISTS ${DB_NAME};"
echo "正在创建数据库 ${DB_NAME}..."
PGPASSWORD="${DB_PASSWORD}" psql "${ADMIN_DSN}" -c "CREATE DATABASE ${DB_NAME};"
echo "正在执行数据库迁移..."
migrate -path migrations -database "${DB_DSN}" up
echo "数据库重置完成!"
echo "当前迁移状态:"
migrate -path migrations -database "${DB_DSN}" version