Drupal 8 - Type d'entité personnalisé - supprimer un « basefield »

Posté le Mardi 22 octobre 2019 - 09:17

Voici comment supprimer le basefield « mon_champ_a_suppr » de mon type d'entité personnalisé « mon_type_entite ».

  1. /**
  2.  * Delete basefield mon_type_entite.mon_champ_a_suppr
  3.  */
  4. function monmodule_update_8020() {
  5. $update_manager = Drupal::service('entity.definition_update_manager');
  6. $definition = $update_manager->getFieldStorageDefinition('mon_champ_a_suppr', 'mon_type_entite');
  7. $update_manager->uninstallFieldStorageDefinition($definition);
  8. return t('mon_type_entite : mon_champ_a_suppr was uninstalled');
  9. }

Lancez les mises à jours de base de données de drupal (drush updb par exemple) et hop, votre champ sera supprimé de votre base de données, évidement si votre type d'entité avait des enregistrements, les données concernants le champ supprimé seront perdues.

Certains diront qu'il est possible d'utiliser la commande drush entup, mais le mécanisme n'est plus présent depuis drupal 8.7. (mais si vraiment vous en avez besoin, vous pouvez regarder du côté du module Devel Entity Updates, à n'installer qu'en connaissance de cause !

 

Ajouter un commentaire

Ne sera pas publié

HTML restreint

  • Balises HTML autorisées : <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...