From fb4fe54090b0dba614a0dac5f0c0dceaedadc97a Mon Sep 17 00:00:00 2001 From: dbastrikin Date: Sat, 21 Mar 2026 13:07:56 +0200 Subject: [PATCH] feat: add import-off make target for OpenFoodFacts import Co-Authored-By: Claude Sonnet 4.6 --- backend/Makefile | 13 ++++++++++++- backend/README.md | 5 +++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/backend/Makefile b/backend/Makefile index 1a95813..9e22366 100644 --- a/backend/Makefile +++ b/backend/Makefile @@ -1,4 +1,4 @@ -.PHONY: run run-worker-paid run-worker-free dev dev-infra-up dev-infra-down test test-integration lint migrate-up migrate-down migrate-create migrate-status docker-up docker-down docker-logs docker-logs-worker +.PHONY: run run-worker-paid run-worker-free dev dev-infra-up dev-infra-down test test-integration lint migrate-up migrate-down migrate-create migrate-status docker-up docker-down docker-logs docker-logs-worker import-off ifneq (,$(wildcard .env)) include .env @@ -54,6 +54,17 @@ migrate-create: migrate-status: goose -dir migrations postgres "$(DATABASE_URL)" status +# OpenFoodFacts import +# Usage: make import-off file=openfoodfacts-products.jsonl.gz +# Optional: make import-off file=... limit=1000 batch=500 min-scans=1 +import-off: + go run ./cmd/importoff \ + -file=$(file) \ + -dsn="$(DATABASE_URL)" \ + $(if $(limit),-limit=$(limit)) \ + $(if $(batch),-batch=$(batch)) \ + $(if $(min-scans),-min-scans=$(min-scans)) + # Docker docker-up: docker compose up -d diff --git a/backend/README.md b/backend/README.md index 6828539..23bf483 100644 --- a/backend/README.md +++ b/backend/README.md @@ -116,6 +116,7 @@ make run-worker-free # Воркер free-очереди | `make migrate-down` | Откатить последнюю миграцию | | `make migrate-status` | Статус миграций | | `make migrate-create name=` | Создать новую миграцию | +| `make import-off file=` | Импортировать каталог из OpenFoodFacts JSONL/GZ | ## Импорт каталога продуктов @@ -125,6 +126,10 @@ make run-worker-free # Воркер free-очереди # Скачать дамп (~66 ГБ, ~4.4 млн записей) # https://world.openfoodfacts.org/data/openfoodfacts-products.jsonl.gz +# Через make (DSN берётся из .env) +make import-off file=openfoodfacts-products.jsonl.gz + +# Или напрямую с дополнительными флагами go run ./cmd/importoff \ -file=openfoodfacts-products.jsonl.gz \ -dsn="$DATABASE_URL" \