Les hooks Dokos permettent de modifier le comportement de l'application sans toucher au code source. Ils sont déclarés dans le fichier hooks.py de chaque application.
Lorsque vous exécutez une migration avec l'option --skip-failing, Dokos ignore les patches qui échouent et les marque comme ignorés.
Cependant, certains patches sont critiques : les ignorer peut entraîner des problèmes d'intégrité des données. Le hook never_skip_patches permet de lister les patches qui doivent toujours arrêter la migration en cas d'échec, même si l'option --skip-failing est activée.
# hooks.py
never_skip_patches = ["app.patches.v16_0.critical_data_fix"]
Avec cette configuration, si le patch app.patches.v16_0.critical_data_fix échoue, la migration s'arrêtera immédiatement avec un message d'erreur, même si --skip-failing a été passé en argument.
:::tip Bonne pratique Utilisez ce hook pour les patches qui corrigent des données critiques ou qui structurellement doivent réussir pour garantir la cohérence de la base de données. :::