Je veux supprimer un schéma

ProcédureMéthode « classique »

Prérequis

Je dois être membre de g_admin ou du groupe producteur[1] du schéma à supprimer.

  1. J’utilise ma méthode habituelle.

    Commande SQL DROP SCHEMA, fonctionnalité de pgAdmin, fonctionnalité du plugin DBManager de QGIS…

    1. Le schéma est automatiquement marqué comme non-existant (creation vaut False) dans la table de gestion[2].

  2. Si le schéma supprimé n’appartenait pas à la nomenclature nationale[3] (nomenclature vaut False) ou que je suis membre du groupe g_admin[4], je peux maintenant supprimer l’enregistrement correspondant dans la table de gestion.

    1
    2
    DELETE  FROM z_asgard.gestion_schema_usr
    3
        WHERE nom_schema = '%nom_schema' ;
    1. Il ne reste plus aucune trace du schéma dans la base.

ProcédureAvec la table de gestion d'ASGARD

Prérequis

Je dois être membre de g_admin ou du groupe producteur[1] du schéma à supprimer.

  1. Dans la table de gestion[2], je commence par modifier le bloc[5] du schéma : j’indique « d » pour mettre le schéma à la corbeille.

    1
    2
    UPDATE z_asgard.gestion_schema_usr
    3
        SET bloc = 'd'
    4
        WHERE nom_schema = '%nom_schema' ;
  2. Dans un second temps, je bascule le champ creation sur False.

    1
    2
    UPDATE z_asgard.gestion_schema_usr
    3
        SET creation = False
    4
        WHERE nom_schema = '%nom_schema' ;
    1. Le schéma et tous les objets qu’il contenait sont automatiquement supprimés de la base. Les informations relatives au schéma (producteur, éditeur, lecteur, niveau d'arborescence...) subsistent pour mémoire dans la table de gestion.

  3. Si le schéma supprimé n’appartenait pas à la nomenclature nationale[3] (nomenclature vaut False) ou que je suis membre du groupe g_admin[4], je peux maintenant supprimer l’enregistrement correspondant dans la table de gestion.

    1
    2
    DELETE  FROM z_asgard.gestion_schema_usr
    3
        WHERE nom_schema = '%nom_schema' ;
    1. Il ne reste plus aucune trace du schéma dans la base.