Suppression d'une convention collective - SocialGouv/code-du-travail-numerique GitHub Wiki

Etape 1 : kali-data

  1. Supprimer dans data/index.json l'objet lié à la convention collective
  2. Optionnel : Ajouter les synonymes sur les autres conventions collectives dans la clé synonymes: []
  3. Supprimer le fichier kalicontXXXXXXXXX.json lié à la convention collective
  4. Lancer le fetch via la github action

Etape 2 : Suppression au niveau de la base de données

Tout d'abord, il faut se connecter à la base de données en effectuant un pont SSH depuis son terminal au pods hasura.

Ensuite, il faut utiliser hasura-cli pour pouvoir se connecter au pods et disposer du playground :

hasura console --endpoint http://localhost:8080 --admin-secret "HASURA_ADMIN_SECRET_ON_RANCHER" --project targets/hasura

Maintenant, nous arrivons sur la playground et nous pouvons lancer les commandes qu'on souhaite

Contributions

Listons ainsi les contributions créées avec le numéro IDCC qui leurs correspondent :

query GetContribution {
  contrib_agreements(where: {
    idcc: {_eq: "1740"}
  }) {
    __typename
    id
    idcc
    answers {
      id
    }
    locations_agreements {
      id
    }
    
  }
}
query GetAnswers {
  contrib_answers(where: {
    agreement: {
      idcc: {_eq: "1740"}
    }
  }) {
    __typename
    id
    answers_references {
      id
    }
    answers_comments {
      id
    }
  }
}
query GetReferences {
  contrib_answers_references(where: {
    answer: {
      agreement: {
      	idcc: {_eq: "1740"}
    	}
    }
    
  }) {
    __typename
    id
  }
}
query GetComments {
  contrib_answers_comments(where: {
    answer: {
      agreement: {
      	idcc: {_eq: "1740"}
    	}
    }
    
  }) {
    __typename
    id
  }
}
query getLocationsAgreements {
  contrib_locations_agreements(where: {
    agreement: {
      idcc: {_eq: "1740"}
    }
  }) {
    __typename
    id
  }
}

Du fait, qu'il n'y a pas de suppression en cascade, il faut supprimer chaque éléments un à un :

mutation DeleteLocationsAgreements {
  delete_contrib_locations_agreements(where: {
    agreement: {
      idcc: {_eq: "1740"}
    }
  }) {
    __typename
  }
}
mutation DeleteReferences {
  delete_contrib_answers_references(where: {
    answer: {
      agreement: {
      	idcc: {_eq: "1740"}
    	}
    }
    
  }) {
    __typename
  }
}
mutation DeleteComments {
  delete_contrib_answers_comments(where: {
    answer: {
      agreement: {
      	idcc: {_eq: "1740"}
    	}
    }
    
  }) {
    __typename
  }
}
mutation DeleteAnswers {
  delete_contrib_answers(where: {
    agreement: {
      idcc: {_eq: "1740"}
    }
  }) {
    __typename
  }
}
mutation DeleteContribution {
  delete_contrib_agreements(where: {
    idcc: {_eq: "1740"}
  }) {
    __typename
  }
}

Conventions collectives

La dernière étape au niveau de la base de données est de supprimer la convention collective.

query GetPublicAgreement {
  agreements(where: {
    id: {_eq: "1740"}
  }) {
    __typename
    id
  }
}
mutation DeletePublicAgreement {
  delete_agreements(where: {
    id: {_eq: "1740"}
  }) {
    __typename
  }
}

Etape 3 : Modification des migrations

Cette étape doit être effectuées dans le cas on une base de données est crée ex nihilo.

Screenshot 2023-07-18 at 11 16 44

Etape 4: alert-cli

La dernière étape consiste à supprimer la référence de la convention collective à l'IDCC au niveau du job d'alerting

Screenshot 2023-07-18 at 11 14 52

Etape 5 : Finalisation

Lorsque l'action kali-data a bien tournée, que les commits ont bien été effectués sur la branche master et que la release de l'admin a bien fonctionnée en deployant les pods sur la production.

Nous devons lancer :

  • le job de l'ingester
  • le job de l'alerting
  • une mise à jour de la preprod

Etape 6 : Les redirections

Sur le projet code-du-travail-numerique, nous pouvons ajouter les redirections correspondantes dans le fichier redirects.json.

...
  {
    "source": "/contribution/1740-:slug",
    "permanent": true,
    "destination": "/contribution/:slug"
  },
  {
    "source": "/convention-collective/1740",
    "permanent": true,
    "destination": "/outils/convention-collective"
  },
  {
    "source": "/convention-collective/1740-:slug",
    "permanent": true,
    "destination": "/outils/convention-collective"
  }
...

Etape 7 : Modification de la recherche entreprise

Dans le cas où des entreprises disposent d'éléments liées à l'ancienne convention, nous devons modifier l'élement via l'API.

Pour cela, il faut ajouter dans code-du-travail-numerique/packages/code-du-travail-frontend/src/api/config.ts, un tableau rataché à l'idcc qui sera remplacé :

export const IDCC_TO_REPLACE = {
  1740: [1596, 1597],
} as const;

Etape 8 : Realease 🚀

  • Déployons en production cdtn-admin en effectuant une release
  • Déployons en production code-du-travail-numerique en effectuant une pre-release puis une release
⚠️ **GitHub.com Fallback** ⚠️