b0b816b0ee
- migrations/0001_init: 全部核心表(product/food_detail/product_msrp/product_source/brand/manufacturer/category/category_schema/unit/attribute_definition/product_image/merge_log) + 索引(gtin唯一/name trigram/JSONB GIN/category ltree/tsvector) + tsvector/updated_at 触发器 - 0002_seed_units: 单位字典(与 units.py 一致, 含中文别名) + 常用营养参数定义 - 0003_seed_categories: 食品品类骨架(GS1 GPC 映射 + 自建中文树, ltree) + 品类参数模板(营养基准 per_100g/ml) - CI 增加 migrations job: 用 postgres service 跑 migrate up + down 验证可逆 - 本地实跑 up/down/re-up 全部通过 Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
29 lines
1.3 KiB
Markdown
29 lines
1.3 KiB
Markdown
# Database migrations (golang-migrate)
|
||
|
||
SQL migrations for the OpenGoods database, applied with
|
||
[golang-migrate](https://github.com/golang-migrate/migrate).
|
||
Naming: `NNNN_description.up.sql` / `NNNN_description.down.sql`.
|
||
|
||
## Files
|
||
| Version | Up | 内容 |
|
||
|---------|----|------|
|
||
| 0001 | `0001_init` | 扩展(pgcrypto/pg_trgm/ltree) + 全部核心表 + 索引 + tsvector 触发器 |
|
||
| 0002 | `0002_seed_units` | 单位字典(与 `ingestion/opengoods/units.py` 一致)+ 常用营养参数定义 |
|
||
| 0003 | `0003_seed_categories` | 食品品类骨架(GS1 GPC 映射 + 自建中文树)+ 品类参数模板 |
|
||
|
||
## 运行
|
||
|
||
先起本地依赖:`docker compose up -d postgres`
|
||
|
||
```bash
|
||
export DBURL="postgres://opengoods:opengoods@localhost:5432/opengoods?sslmode=disable"
|
||
migrate -path migrations -database "$DBURL" up # 升级到最新
|
||
migrate -path migrations -database "$DBURL" down -all # 全部回滚
|
||
migrate -path migrations -database "$DBURL" version # 查看当前版本
|
||
```
|
||
|
||
安装 CLI:`go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@v4.18.1`
|
||
|
||
> ltree 标签为英文 slug(不支持空格/中文),中文名存于 `category.name_zh`。
|
||
> `gpc_brick_code` 为食品子集的代表值,后续用官方 GPC 全量导入替换。
|