Improve account Makefile database maintenance (#501)
This commit is contained in:
parent
64e35c60b2
commit
67122cc8df
@ -66,13 +66,16 @@ init-go:
|
||||
@go mod tidy
|
||||
|
||||
init-db:
|
||||
@echo ">>> 初始化数据库 schema"
|
||||
@command -v psql >/dev/null || (echo "❌ 未检测到 psql,请安装 PostgreSQL 客户端" && exit 1)
|
||||
@psql "$(DB_URL)" -v ON_ERROR_STOP=1 -f $(SCHEMA_FILE)
|
||||
@if [ -f $(PGLOGICAL_INIT_FILE) ]; then \
|
||||
psql "$(DB_URL)" -v ON_ERROR_STOP=1 -f $(PGLOGICAL_INIT_FILE) || \
|
||||
echo "⚠️ 跳过 pglogical 初始化(非超级用户)"; \
|
||||
fi
|
||||
@echo ">>> 初始化数据库 schema"
|
||||
@command -v psql >/dev/null || (echo "❌ 未检测到 psql,请安装 PostgreSQL 客户端" && exit 1)
|
||||
@psql "$(DB_URL)" -v ON_ERROR_STOP=1 -f $(SCHEMA_FILE)
|
||||
@if [ -f $(PGLOGICAL_INIT_FILE) ]; then \
|
||||
if psql "$(DB_URL)" -Atc "SELECT rolsuper FROM pg_roles WHERE rolname = current_user" | grep -qx 't'; then \
|
||||
psql "$(DB_URL)" -v ON_ERROR_STOP=1 -f $(PGLOGICAL_INIT_FILE); \
|
||||
else \
|
||||
echo "⚠️ 当前用户非超级用户,跳过 pglogical 初始化"; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
# =========================================
|
||||
# 🧠 PGLogical 双节点初始化
|
||||
@ -120,8 +123,18 @@ dump-schema:
|
||||
@pg_dump -s -O -x "$(DB_URL)" > $(SCHEMA_FILE)
|
||||
|
||||
drop-db:
|
||||
@read -p "⚠️ 确认删除数据库 $(DB_NAME)? [y/N] " c && [ "$$c" = "y" -o "$$c" = "Y" ] && \
|
||||
PGPASSWORD="$(DB_PASS)" psql -h $(DB_HOST) -U $(DB_USER) -d postgres -c "DROP DATABASE IF EXISTS $(DB_NAME);" || echo "取消操作"
|
||||
@echo "⚠️ 即将删除数据库 $(DB_NAME) ..."
|
||||
@read -p "确定要删除数据库 $(DB_NAME)? [y/N] " confirm && \
|
||||
if [ "$$confirm" = "y" ] || [ "$$confirm" = "Y" ]; then \
|
||||
echo ">>> 强制断开现有连接 ..."; \
|
||||
PGPASSWORD="$(DB_PASS)" psql -h $(DB_HOST) -U $(DB_USER) -d postgres \
|
||||
-c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='$(DB_NAME)';"; \
|
||||
echo ">>> 删除数据库 $(DB_NAME) ..."; \
|
||||
PGPASSWORD="$(DB_PASS)" psql -h $(DB_HOST) -U $(DB_USER) -d postgres \
|
||||
-c "DROP DATABASE IF EXISTS $(DB_NAME);" || echo ">>> 删除失败"; \
|
||||
else \
|
||||
echo "取消删除"; \
|
||||
fi
|
||||
|
||||
reset-public-schema:
|
||||
@psql "$(DB_URL)" -v ON_ERROR_STOP=1 \
|
||||
|
||||
Loading…
Reference in New Issue
Block a user