30 lines
637 B
Markdown
30 lines
637 B
Markdown
# 数据库对接
|
||
|
||
## PostgreSQL
|
||
|
||
- 主业务存储使用 PostgreSQL(见 `internal/store/postgres.go`)
|
||
- Schema 位于 `sql/schema.sql`
|
||
- 迁移工具:`migratectl`
|
||
|
||
## 同步策略
|
||
|
||
仓库提供两类同步方式(见 `sql/readme.md`):
|
||
|
||
1) pgsync(单向异步)
|
||
- 适合单主写入 + 异步同步
|
||
- 不需要超级用户权限
|
||
|
||
2) pglogical(双主最终一致)
|
||
- 适合多区域双写
|
||
- 需要安装 pglogical 扩展
|
||
|
||
## 常用命令
|
||
|
||
```bash
|
||
# 初始化 schema
|
||
go run ./cmd/migratectl/main.go migrate --dsn "$DB_URL"
|
||
|
||
# 校验 schema
|
||
go run ./cmd/migratectl/main.go verify --dsn "$DB_URL" --schema sql/schema.sql
|
||
```
|