# Installation — Coaster World DATA v0.14.0

Base de référence validée : **v0.12.0**.

Cette mise à jour est **cumulative** : si la v0.13.0 n’a pas encore été installée, les migrations v0.13.0 et v0.14.0 seront appliquées ensemble. Si v0.13.0 est déjà installée, Laravel n’exécutera que les nouvelles migrations v0.14.0.

## 1. Arrêter les processus DATA

Double-cliquer sur :

```text
STOP_DATA.bat
```

ou fermer proprement les fenêtres scheduler/worker.

## 2. Sauvegarder la base MySQL

Effectuer une sauvegarde de `coaster_world_data` avant la migration.

## 3. Copier les fichiers

Décompresser `coaster-world-data_v0.14.0_2026-09-28_update.zip` dans :

```text
C:\laragon\www\coaster-world-data
```

Accepter le remplacement des fichiers existants.

## 4. Mettre à jour la base et les caches

Dans le terminal Laragon :

```bat
cd C:\laragon\www\coaster-world-data
php artisan config:clear
php artisan migrate
php artisan optimize:clear
php artisan migrate:status
```

Si v0.13.0 n’était pas installée, les migrations suivantes doivent passer :

```text
2026_09_28_040000_create_ingestion_batches_table
2026_09_28_040100_create_ingestion_candidates_table
2026_09_28_041000_add_parent_context_to_ingestion_candidates_table
2026_09_28_041100_create_ingestion_candidate_values_table
```

Si v0.13.0 était déjà installée, seules `041000` et `041100` sont nouvelles.

## 5. Vérifications

```bat
php artisan route:list --path=admin/ingestion
php artisan test --filter=ControlledIngestionTest
php artisan test --filter=MultiEntityIngestionTest
php artisan test --filter=DataReliabilityTest
php artisan test --filter=PublicApiV1Test
```

## 6. Redémarrer DATA

Double-cliquer sur :

```text
START_DATA.bat
```

Puis vérifier :

```text
http://coaster-world-data.test/admin/system
http://coaster-world-data.test/admin/ingestion
```

## Comportement attendu

- les candidats de type parc, attraction, coaster et POI sont reconnus ;
- un enfant affiche son parc parent ;
- un enfant ne peut pas être créé tant que le parc parent n’est pas résolu ;
- `Associer` ou `Créer` transforme les valeurs proposées en observations sourcées ;
- aucune de ces observations ne devient automatiquement canonique ;
- les données brutes et la décision restent traçables.
