# Aurora Golang Clean Architecture Template 这是一个基于 **Go + Gin + GORM** 的多数据库自动切换项目模板,遵循 Clean Architecture 分层思想。模板默认支持 SQLite、MySQL 与 PostgreSQL,使用配置文件即可切换数据库驱动。 ## 结构说明 ``` . ├── cmd/ │ └── server/ # 应用入口 ├── configs/ │ └── config.yaml # 默认配置文件 ├── internal/ │ ├── config/ # 配置加载 │ ├── domain/ # 领域模型和接口 │ ├── infrastructure/ # 数据库与仓储实现 │ ├── interface/ # HTTP 适配器 │ └── usecase/ # 应用服务 ├── pkg/ │ └── logger/ # 日志封装 └── go.mod ``` ## 快速开始 1. 安装依赖 ```bash go mod tidy ``` 2. 根据需要调整 `configs/config.yaml` 或 `.env` 中的数据库驱动参数,可选值: - `sqlite` - `mysql` - `postgres` / `postgresql` 3. 运行服务 ```bash go run ./cmd/server ``` 4. 示例接口 - `GET /api/v1/users` - `GET /api/v1/users/:id` - `POST /api/v1/users` ## 数据库自动切换 通过配置文件中的 `database.driver` 自动选择对应的 GORM 驱动: - SQLite 会在 `data/aurora.db` 下生成数据库文件(路径可配置) - MySQL、PostgreSQL 根据配置生成 DSN,支持额外连接参数 ## 清晰的分层设计 - `domain`: 定义核心业务实体与仓储接口 - `usecase`: 聚合业务逻辑,依赖仓储接口 - `infrastructure`: 提供 GORM 仓储实现、数据库初始化等 - `interface/http`: 提供 Gin HTTP 适配器 - `cmd/server`: 组装依赖、启动服务 ## 下一步 - 扩展更多领域模型与用例 - 集成依赖注入框架 - 增加测试与 CI/CD 欢迎在此模板基础上继续拓展,构建您的业务服务。