# ============================================================ # Pear Admin Flask - Makefile(跨平台,Windows 下需用 Git Bash / WSL) # # 用法(在项目根目录): # make help 查看所有命令 # make venv 创建虚拟环境 # make install 安装依赖 # make migrate 执行 db migrate + upgrade # make seed 导入 admin 基础数据(app_data/init.json) # make init 等价于 migrate + seed # make run 开发模式启动(PEAR_ENV=dev) # make run-prod 生产模式启动(PEAR_ENV=production,要求 .env SECRET_KEY) # make clean 清理缓存与数据库(危险!请先备份) # make health curl /healthz # ============================================================ PY ?= python VENV ?= venv PYBIN := $(VENV)/bin/python PIP := $(PYBIN) -m pip FLASK := $(PYBIN) -m flask APP := app.py .PHONY: help venv install migrate seed init run run-prod clean health help: @echo "可用命令:" @echo " make venv 创建虚拟环境" @echo " make install 安装依赖" @echo " make migrate db migrate + upgrade" @echo " make seed flask admin init" @echo " make init migrate + seed" @echo " make run 开发模式启动(默认端口 5000)" @echo " make run-prod 生产模式启动(强制要求 .env SECRET_KEY)" @echo " make health curl http://127.0.0.1:5000/healthz" @echo " make clean 清理 pyc / __pycache__ / pear.db / flask_session" venv: @test -d "$(VENV)" || $(PY) -m venv $(VENV) @echo "[venv] 已创建 $(VENV)" install: venv $(PIP) install --upgrade pip $(PIP) install -r requirements.txt migrate: $(FLASK) db migrate $(FLASK) db upgrade seed: $(FLASK) admin init init: migrate seed run: PEAR_ENV=dev $(PYBIN) $(APP) run-prod: PEAR_ENV=production $(PYBIN) $(APP) health: @curl -sS http://127.0.0.1:5000/healthz | python -m json.tool clean: find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true find . -type d -name ".pytest_cache" -exec rm -rf {} + 2>/dev/null || true find . -type f -name "*.pyc" -delete rm -rf flask_session @echo "[clean] 已清理缓存。注意:pear.db 请手动备份后删除。"