时间字段改由业务层生成并传入

This commit is contained in:
fish
2026-04-13 21:38:04 +08:00
parent 66e553c7c8
commit dc1056ffb0
4 changed files with 45 additions and 17 deletions

View File

@@ -162,7 +162,19 @@ OK
struct ApiResponse<T> { success: bool, message: String, data: Option<T> }
```
### 2. 环境变量
### 3. 时间字段约定
所有表中的 `createdate` 和 `modifydate` **必须由业务层生成并传入**数据库Schema中**不设置** `DEFAULT CURRENT_TIMESTAMP`,也不使用触发器自动更新。
- 建表时:
```sql
createdate TIMESTAMP WITH TIME ZONE NOT NULL,
modifydate TIMESTAMP WITH TIME ZONE NOT NULL
```
- Rust 代码中使用 `chrono::Utc::now()` 生成时间戳,统一在事务开始前创建 `let now = Utc::now();`,确保同一笔业务中各表时间一致。
- `modifydate` 更新时同样需要在业务代码中显式传入 `Utc::now()`。
### 4. 环境变量
所有服务通过环境变量读取配置:
- `DATABASE_URL` — PostgreSQL 连接串(必需)
@@ -171,13 +183,13 @@ OK
- `JWT_SECRET` — JWT 签名密钥
- `RUST_LOG` — 日志级别
### 3. Docker 构建
### 5. Docker 构建
- 各微服务 Dockerfile 的构建上下文为**项目根目录**`docker-compose.yml` 中使用 `context: ../..`)。
- 构建采用多阶段builder + runtime基于 `rust:1.94.1-alpine3.23` 编译,最终运行在 `alpine:3.23`。
- 共享代码更新时,需确保 `shared/` 目录在 Dockerfile 中被正确复制。
### 4. 网关与路由
### 6. 网关与路由
- Nginx 监听 80/443开发环境使用自签名证书。
- 路由前缀约定: