Aller au contenu

update

gapline update <target> -w QUERY -s KEY=VALUE [KEY=VALUE...] [-f PATH] [--confirm] [--cascade] [-o PATH]

update réécrit des champs sur chaque enregistrement matchant --where. Le filtre et les paires --set sont tous deux obligatoires — il n’y a pas de mise à jour en masse sans filtre.

Quand une affectation --set change une clé primaire (par ex. renommer un stop_id), gapline détecte le changement de PK et, si --cascade est passé, réécrit toute référence FK dans les fichiers dépendants (par ex. stop_times.txt pour un renommage de stop_id). Sans --cascade, une réécriture de PK qui orphelinerait des dépendants est refusée.

Les updates non-PK ne cascadent jamais : ils touchent uniquement le fichier cible. Utilisez --confirm pour sauter le prompt interactif en script/CI.

ArgumentValeurs
<target>Tout fichier GTFS supporté en CRUD — voir read pour la liste complète.
FlagCourtValeurDescription
--feed-fPATHChemin du flux GTFS. Optionnel si [default] feed est défini.
--where-wQUERYRequis. Expression de filtre qui sélectionne les enregistrements à modifier. Voir le langage de requête.
--set-sKEY=VALUERequis. Valeurs de champ à appliquer à chaque enregistrement matché. Plusieurs paires KEY=VALUE acceptées après un seul flag.
--confirmSaute le prompt de confirmation interactif.
--cascadeCascade les changements de clé primaire à tous les fichiers dépendants. Requis quand --set réécrit une PK référencée ailleurs.
--output-oPATHÉcrit le flux modifié à ce chemin au lieu d’écraser la source.

Les flags globaux sont listés sur référence / flags globaux.

Fenêtre de terminal
gapline update stops -f gtfs.zip \
--where "stop_id=S01" \
--set stop_name="Gare Centrale" \
--confirm

Pas de cascade : stop_name n’est pas une clé primaire.

Fenêtre de terminal
gapline update stops -f gtfs.zip \
--where "stop_id=S01" \
--set stop_id=STOP_MAIN \
--cascade --confirm

Toutes les lignes de stop_times.txt, transfers.txt, pathways.txt, et de tout autre fichier qui référence stop_id=S01 sont réécrites dans la même passe.

Fenêtre de terminal
gapline update routes -f gtfs.zip \
--where "route_id=R1" \
--set route_short_name="1" route_long_name="Boulevard" route_type=3 \
--confirm
Fenêtre de terminal
gapline update routes -f gtfs.zip \
--where "route_type=700" \
--set route_type=3 \
--confirm
CodeSignification
0Enregistrements mis à jour.
1--where non parsable, aucun enregistrement matché, ou réécriture de PK refusée sans --cascade.
2Erreur de configuration.
3Erreur I/O (flux introuvable, sortie non-écrivable).
4--where a matché zéro enregistrement. Rien n’a été écrit.

Voir concepts / codes de retour pour la table complète.