All checks were successful
CI / secret-scan (push) Successful in 20s
CI / php-lint (push) Successful in 31s
CI / static-tests (push) Successful in 1m15s
CI / js-tests (push) Successful in 46s
CI / secret-scan (pull_request) Successful in 25s
CI / php-lint (pull_request) Successful in 37s
CI / static-tests (pull_request) Successful in 1m19s
CI / js-tests (pull_request) Successful in 47s
41 lines
2.2 KiB
SQL
41 lines
2.2 KiB
SQL
-- db/migrations/0005_ingredient_nutrition.sql
|
|
-- =============================================================================
|
|
-- Wakdo - Migration 0005 : enrichissement nutritionnel depuis une API EXTERNE
|
|
-- =============================================================================
|
|
-- Purpose : ajoute a `ingredient` des colonnes nullables pour stocker des donnees
|
|
-- nutritionnelles importees depuis une API TIERCE (OpenFoodFacts), a la
|
|
-- demande d'un manager/admin (action explicite, pas au runtime borne).
|
|
-- Demontre l'exploitation, DANS LE MODELE de donnees, d'informations
|
|
-- externes provenant d'une API (Cr 3.a.3). Egress maitrise et opt-in :
|
|
-- aucun appel automatique ; la passerelle (App\Catalogue\
|
|
-- OpenFoodFactsGateway) est invoquee seulement par IngredientController::enrich.
|
|
-- Target : MariaDB 11.4 LTS, InnoDB, utf8mb4 / utf8mb4_unicode_ci.
|
|
-- =============================================================================
|
|
|
|
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- Idempotence : meme garde information_schema que 0007 (re-jouable sans erreur).
|
|
-- Les trois colonnes sont ajoutees ensemble ; l'existence de la premiere
|
|
-- (`energy_kcal_100g`) suffit donc a court-circuiter le groupe. Si elle existe
|
|
-- deja, on execute un no-op (DO 0). Le schema resultant est inchange.
|
|
SET @col_exists := (
|
|
SELECT COUNT(*) FROM information_schema.columns
|
|
WHERE table_schema = DATABASE() AND table_name = 'ingredient' AND column_name = 'energy_kcal_100g'
|
|
);
|
|
|
|
SET @ddl := IF(
|
|
@col_exists = 0,
|
|
'ALTER TABLE ingredient
|
|
ADD COLUMN energy_kcal_100g SMALLINT UNSIGNED NULL AFTER pack_label,
|
|
ADD COLUMN nutrition_source VARCHAR(120) NULL AFTER energy_kcal_100g,
|
|
ADD COLUMN nutrition_fetched_at DATETIME NULL AFTER nutrition_source',
|
|
'DO 0'
|
|
);
|
|
PREPARE stmt FROM @ddl;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- energy_kcal_100g : apport energetique pour 100 g (SMALLINT UNSIGNED suffit ; les
|
|
-- valeurs reelles restent < 1000). nutrition_source : provenance ("OpenFoodFacts").
|
|
-- nutrition_fetched_at : horodatage de l'import, pour tracer la fraicheur. Toutes
|
|
-- nullables : un ingredient non enrichi reste valide (donnee optionnelle).
|