<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: McAle</title>
    <description>The latest articles on DEV Community by McAle (@mcale).</description>
    <link>https://dev.to/mcale</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1584047%2F1972ef6f-57b3-4a08-b006-5582fa5b2bd5.png</url>
      <title>DEV Community: McAle</title>
      <link>https://dev.to/mcale</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mcale"/>
    <language>en</language>
    <item>
      <title>Risolvere l’Errore "A non-existent config entity name returned by FieldStorageConfigInterface::getBundles()" in Drupal</title>
      <dc:creator>McAle</dc:creator>
      <pubDate>Fri, 23 May 2025 08:41:58 +0000</pubDate>
      <link>https://dev.to/mcale/risolvere-lerrore-a-non-existent-config-entity-name-returned-by-1gnn</link>
      <guid>https://dev.to/mcale/risolvere-lerrore-a-non-existent-config-entity-name-returned-by-1gnn</guid>
      <description>&lt;p&gt;Quando si lavora con Drupal e si eseguono operazioni di manutenzione o pulizia dei contenuti e dei tipi di entità, può capitare di imbattersi in un errore come questo nel log:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A non-existent config entity name returned by FieldStorageConfigInterface::getBundles(): entity type: node, bundle: [BUNDLE_TYPE], field name: [FIELD_NAME]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Cosa significa questo errore?
&lt;/h3&gt;

&lt;p&gt;Questo messaggio di errore indica che Drupal sta tentando di recuperare una configurazione di field associata a un bundle (tipo di contenuto) che non esiste più. In particolare, la configurazione interna dei campi (field_map) mantiene ancora un riferimento a quel bundle fantasma.&lt;/p&gt;

&lt;p&gt;Questo accade spesso quando:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Un bundle viene eliminato manualmente dal database (errore).&lt;/li&gt;
&lt;li&gt;Un modulo contrib crea e poi elimina un tipo di contenuto.&lt;/li&gt;
&lt;li&gt;C'è un'incongruenza tra la configurazione salvata e lo stato reale del sito.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Come risolvere
&lt;/h2&gt;

&lt;p&gt;Per risolvere il problema è necessario rimuovere manualmente il riferimento orfano dalla mappa dei campi (bundle_field_map). Di seguito un semplice script PHP da eseguire in un contesto Drupal (es. via drush php o tramite un modulo custom):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Drupal&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;keyValue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Recupera la mappa dei campi per l'entità "node"&lt;/span&gt;
&lt;span class="nv"&gt;$key_value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;\Drupal&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;keyValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'entity.definitions.bundle_field_map'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$field_map&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$key_value&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'node'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Sostituire con i valori effettivi dell'errore&lt;/span&gt;
&lt;span class="nv"&gt;$field_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'[FIELD_NAME]'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$bundle_to_remove&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'BUNDLE_TYPE'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Verifica e rimuove il bundle se presente&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;isset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$field_map&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$field_name&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;'bundles'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="nv"&gt;$bundle_to_remove&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;unset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$field_map&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$field_name&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;'bundles'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="nv"&gt;$bundle_to_remove&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="nv"&gt;$key_value&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'node'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$field_map&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Bundle rimosso dalla field map: &lt;/span&gt;&lt;span class="nv"&gt;$bundle_to_remove&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Bundle non trovato nella field map: &lt;/span&gt;&lt;span class="nv"&gt;$bundle_to_remove&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>php</category>
      <category>italian</category>
    </item>
    <item>
      <title>Drupal: Rimuovere un plugin fantasma dal database</title>
      <dc:creator>McAle</dc:creator>
      <pubDate>Sun, 07 Jul 2024 09:17:04 +0000</pubDate>
      <link>https://dev.to/mcale/drupal-rimuovere-un-plugin-fantasma-dal-database-9pj</link>
      <guid>https://dev.to/mcale/drupal-rimuovere-un-plugin-fantasma-dal-database-9pj</guid>
      <description>&lt;p&gt;Fonte: &lt;a href="https://drupal.stackexchange.com/questions/315921/removing-phantom-plugin-from-database/320215#320215" rel="noopener noreferrer"&gt;https://drupal.stackexchange.com/questions/315921/removing-phantom-plugin-from-database/320215#320215&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Può succedere che quando si disinstalla un modulo la procedura non viene eseguita tutta oppure non è presente nessuna procedura di rimozione, per questo motivo il database rimane "sporco".&lt;br&gt;
Normalmente l'errore causato dalla rimozione forzata di un plugin è questo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;error]  Drupal&lt;span class="se"&gt;\C&lt;/span&gt;omponent&lt;span class="se"&gt;\P&lt;/span&gt;lugin&lt;span class="se"&gt;\E&lt;/span&gt;xception&lt;span class="se"&gt;\P&lt;/span&gt;luginNotFoundException:
         The &lt;span class="s2"&gt;"name-of-plugin"&lt;/span&gt; entity &lt;span class="nb"&gt;type &lt;/span&gt;does not exist.
         &lt;span class="k"&gt;in &lt;/span&gt;Drupal&lt;span class="se"&gt;\C&lt;/span&gt;ore&lt;span class="se"&gt;\E&lt;/span&gt;ntity&lt;span class="se"&gt;\E&lt;/span&gt;ntityTypeManager-&amp;gt;getDefinition&lt;span class="o"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Abilitare la configurazione che mostra tutti i messaggi di errori, può aiutare a capire dove è presente l'errore e dove serve intervenire.&lt;br&gt;
L'abilitazione completa dei log la puoi attivare nella pagina qui presente &lt;code&gt;admin/config/development/logging&lt;/code&gt;. Questa configurazione può aiutarti a capire se il problema sono le configurazioni o il nome del plugin è hardcodato nel tuo codice.  &lt;/p&gt;

&lt;p&gt;Adesso affronteremo come risolvere la problematica se è legata alle configurazioni e per farlo abbiamo due modi possibili:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Esportando tutta la configurazione e reimportandola dopo aver rimosso i richiami al plugin&lt;/li&gt;
&lt;li&gt;Agendo direttamente sulle configurazioni presenti in db e rimuovendo il plugin&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Esportando tutta la configurazione e reimportandola
&lt;/h3&gt;

&lt;p&gt;Questa soluzione molto probabilmente è tra le più utilizzare se si segue lo standard per la metodologia di rilascio consigliata dalla community di Drupal.&lt;br&gt;
Esporta tutta la configurazione attraverso l'interfaccia grafica o con il comando &lt;code&gt;drush config:export&lt;/code&gt;. Nei file recuperati dall'export effettua una ricerca full-text con il nome di plugin. Rimuovi la sezione di configurazione che sta causando l'errore e importa la configurazione con &lt;code&gt;drush config:import&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Agendo direttamente sulle configurazioni presenti in db e rimuovendo il plugin
&lt;/h3&gt;

&lt;p&gt;Questa soluzione è utile per chi, come me, non ha la possibilità di esportare tutta la configurazione e reimportarla ma ha bisogno di lavorare "a caldo" sul sito.&lt;br&gt;
Per trovare quali configurazioni stanno causando l'errore è possibile eseguire questa query sul db:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt; &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="k"&gt;data&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="nv"&gt;"%name-of-plugin%"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;La query cerca nella tabella delle configurazioni il plugin incriminato e restituisce i nomi delle configurazioni che richiamano il plugin.&lt;/p&gt;

&lt;p&gt;Quando si hanno i nomi delle configurazioni si può procedere alla rimozione del plugin.&lt;br&gt;
In base al plugin e alla configurazione in errore il metodo di rimozione può leggermente cambiare, adesso prendiamo in considerazione un esempio che può essere un buon punto di partenza anche per altre casistiche.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Es.&lt;/strong&gt;&lt;br&gt;
Avevo un problema con il plugin &lt;code&gt;filter_image_lazy_load&lt;/code&gt; a causa di un aggiornamento a Drupal 10 andato male.&lt;br&gt;
La query precedente ha restituito queste configurazioni:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;filter.format.basic_html
filter.format.full_html
filter.format.restricted_html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Con il servizio &lt;code&gt;config.factory&lt;/code&gt; ho caricato le configurazioni e ho verificato dove è presente il problema. Dopo si può procedere alla rimozione del plugin in questo modo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$configName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'filter.format.basic_html'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;\Drupal&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;service&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'config.factory'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getEditable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$configName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$filters&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'filters'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;unset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$filters&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'filter_image_lazy_load'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'filters'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$filters&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Puoi fare la stessa identica cosa con &lt;code&gt;drush config:get filter.format.basic_html&lt;/code&gt; e &lt;code&gt;drush config:set filter.format.basic_html&lt;/code&gt; oppure in un colpo unico con &lt;code&gt;drush config:edit filter.format.basic_html&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Dopo aver pulito le configurazioni esegui un &lt;code&gt;drush cache:rebuild&lt;/code&gt; e l'errore dovrebbe essere risolto!&lt;/p&gt;

</description>
      <category>drupal</category>
      <category>php</category>
      <category>italian</category>
    </item>
    <item>
      <title>Come correggere l'errore "Currently using Missing or invalid module"</title>
      <dc:creator>McAle</dc:creator>
      <pubDate>Thu, 04 Jul 2024 15:32:11 +0000</pubDate>
      <link>https://dev.to/mcale/come-correggere-lerrore-currently-using-missing-or-invalid-module-2pma</link>
      <guid>https://dev.to/mcale/come-correggere-lerrore-currently-using-missing-or-invalid-module-2pma</guid>
      <description>&lt;p&gt;Durante lo sviluppo di un sito drupal, può capitare di installare un modulo e poi cancellare i file senza disabilitarlo, oppure durante la disintallazione qualcosa non va a buon fine e il DB rimane sporco.&lt;/p&gt;

&lt;p&gt;In questi casi può comparire l'errore:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;error] Currently using Missing or invalid module.
        The following module is marked as installed &lt;span class="k"&gt;in
        &lt;/span&gt;the core.extension configuration,
        but it is missing:
 &lt;span class="k"&gt;*&lt;/span&gt; phpass
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;L'errore normalmente compare se si prova a effettuare &lt;code&gt;drush updatedb&lt;/code&gt;, in questo caso non è bloccante ma è solo noioso vederlo.&lt;br&gt;
L'errore diventa bloccante quando si prova a installare o disinstallare un modulo, in quel momento si viene bloccati.&lt;/p&gt;

&lt;p&gt;Nell'esempio che ho riportato stavo effettuando test di aggiornamento di un sito da Drupal 9 a 10, ma dopo l'aggiornamento (avvenuto con successo), sono dovuto tornare alla versione 9.&lt;br&gt;
Cambiando versione, senza procedure di rollback guidate che eseguivano le operazioni necessarie, ho causato la problematica; il modulo &lt;code&gt;phpass&lt;/code&gt; introdotto in Drupal 10 non era più presente su sito.&lt;/p&gt;
&lt;h3&gt;
  
  
  Come risolvere l'errore
&lt;/h3&gt;

&lt;p&gt;La risoluzione è molto semplice, basta rimuovere dalla configurazione &lt;code&gt;core.extension&lt;/code&gt; il riferimento al modulo, così il sito non vede più il modulo attivo e non lo cerca più.&lt;/p&gt;

&lt;p&gt;Il comando da eseguire è questo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;drush config:delete core.extension module.phpass
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dopo averlo eseguito sarete liberi di installare ogni modulo che desiderate!&lt;/p&gt;

</description>
      <category>drupal</category>
      <category>fix</category>
      <category>italian</category>
    </item>
    <item>
      <title>Git revert commit – Come rimuovere l'ultimo commit fatto</title>
      <dc:creator>McAle</dc:creator>
      <pubDate>Sun, 30 Jun 2024 12:51:31 +0000</pubDate>
      <link>https://dev.to/mcale/git-revert-commit-come-rimuovere-lultimo-commit-fatto-1nb3</link>
      <guid>https://dev.to/mcale/git-revert-commit-come-rimuovere-lultimo-commit-fatto-1nb3</guid>
      <description>&lt;p&gt;Fonte: &lt;a href="https://www.freecodecamp.org/news/git-revert-commit-how-to-undo-the-last-commit/"&gt;Git Revert Commit – How to Undo the Last Commit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Voglio riportare due metodi per poter ripristinare il proprio codice quando per sbaglio del codice errato è stato commitatto o se si ha sbagliato branch di destinazione.&lt;/p&gt;

&lt;h2&gt;
  
  
  Il comando &lt;code&gt;revert&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Il comando &lt;code&gt;revert&lt;/code&gt;, dopo aver specificato il commit da dover rimuovere,  creerà un altro commit che farà le operazioni opposte alle tue ultime modifiche, ripristinando il codice al suo stato iniziale.&lt;br&gt;
Puoi usarlo in questo modo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git revert &amp;lt;commit_SHA_to_revert&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Puoi trovare lo SHA del commit che vuoi rimuovere utilizzando &lt;code&gt;git log&lt;/code&gt;. Il primo commit che verrà visualizzato è l'ultimo commit che è stato creato. Dopo aver individuato il commit, puoi copiare lo SHA e usarlo nel comando indicato precedentemente.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Il comando &lt;code&gt;reset&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Il comando reset è più immediato perchè non c'è bisogno dello SHA del commit per eseguirlo, ma devi prestare molta più attenzione a usarlo, perchè verrà cambiata la history dei commit.&lt;br&gt;
L'operazione fatta dal comando &lt;code&gt;reset&lt;/code&gt; sposterà il puntamento alla HEAD del branch corrente e scarterà tutto il resto che è stato fatto dopo.&lt;br&gt;
Puoi usarlo in questo modo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git reset &lt;span class="nt"&gt;--soft&lt;/span&gt; HEAD~1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;L'opzione &lt;code&gt;--soft&lt;/code&gt; significa che non perderai i cambiamenti non aggiunti a un commit che potresti avere.&lt;/p&gt;

&lt;p&gt;Se invece vuoi ripristinare l'ultimo commit rimuovendo anche tutte le modifiche non presenti in un commit puoi usare l'opzione &lt;code&gt;--hard&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git reset &lt;span class="nt"&gt;--hard&lt;/span&gt; HEAD~1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Dovresti utilizzare &lt;code&gt;reset&lt;/code&gt; o &lt;code&gt;revert&lt;/code&gt;?
&lt;/h2&gt;

&lt;p&gt;Dovresti utilizzare &lt;code&gt;reset&lt;/code&gt; solo se il commit che devi rimuovere esiste solo localmente e non hai ancora eseguito un &lt;code&gt;push&lt;/code&gt; per caricare il codice nel repository.&lt;br&gt;
Questo comando cambia la history dei commit e potrebbe sovrascrivere delle modifiche importanti per altri membri del team che stanno lavorando sullo stesso progetto.&lt;/p&gt;

&lt;p&gt;Viceversa &lt;code&gt;revert&lt;/code&gt; crea un nuovo commit che rimuove le modifiche, così se il commit da togliere è già stato caricato nel repository, è meglio utilizzare un revert che non cambia o non rischia di sovrascrivere la history dei commit.&lt;/p&gt;

</description>
      <category>git</category>
      <category>revert</category>
      <category>italian</category>
    </item>
    <item>
      <title>Come correggere l'errore "non-existent config entity name returned by FieldStorageConfigInterface::getBundles()"</title>
      <dc:creator>McAle</dc:creator>
      <pubDate>Sun, 16 Jun 2024 17:02:33 +0000</pubDate>
      <link>https://dev.to/mcale/come-correggere-lerrore-non-existent-config-entity-name-returned-by-fieldstorageconfiginterfacegetbundles-1ega</link>
      <guid>https://dev.to/mcale/come-correggere-lerrore-non-existent-config-entity-name-returned-by-fieldstorageconfiginterfacegetbundles-1ega</guid>
      <description>&lt;p&gt;Fonte: &lt;a href="https://www.drupal.org/project/drupal/issues/2916266"&gt;How to fix "non-existent config entity name returned by FieldStorageConfigInterface::getBundles()"&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Personalmente mi sono imbattuto in questo errore dopo aver aggiornato un sito storico che è nato con Drupal 8, è passato alla versione 9 e adesso ha affrontato l'aggiornamento a Drupal 10.&lt;/p&gt;

&lt;p&gt;Nel corso degli anni il sito ha subito numerose aggiunte, modifiche e cancellazione di campi, ogni volta portandosi dietro molta "sporcizia".&lt;/p&gt;

&lt;p&gt;Con l'aggiornamento a Drupal 10 ho notato una mole di errori nei log immensa quindi è stato necessario affrontare la problematica cercando.&lt;/p&gt;

&lt;p&gt;Grazie alla community sono riuscito a trovare la soluzione citata nel link in cima al post.&lt;br&gt;
Voglio riportare la soluzione per rendere più facile trovare la risposta perchè il post originale è diventato molto lungo e un po' dispersivo.&lt;/p&gt;

&lt;p&gt;Per risolvere l'errore ci sono diversi modi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Utilizzando un &lt;code&gt;HOOK_update&lt;/code&gt;:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;YOURMODULENAME_update_10001&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;## Fixes:&lt;/span&gt;
  &lt;span class="c1"&gt;## A non-existent config entity name returned by FieldStorageConfigInterface::getBundles(): entity type: paragraph, bundle: text, field name: field_image&lt;/span&gt;
  &lt;span class="nv"&gt;$entity_type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'paragraph'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;$bundle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'text'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;$field_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'field_image'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="cd"&gt;/** @var \Drupal\Core\KeyValueStore\KeyValueFactoryInterface $key_value_factory */&lt;/span&gt;
  &lt;span class="nv"&gt;$key_value_factory&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;\Drupal&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;service&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'keyvalue'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nv"&gt;$field_map_kv_store&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$key_value_factory&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'entity.definitions.bundle_field_map'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nv"&gt;$map&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$field_map_kv_store&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$entity_type&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="c1"&gt;// Remove the field_dates field from the bundle field map for the page bundle.&lt;/span&gt;
  &lt;span class="k"&gt;unset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$map&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$field_name&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;'bundles'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="nv"&gt;$bundle&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="c1"&gt;// Remove field definition if empty.&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$map&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$field_name&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;'bundles'&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;unset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$map&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$field_name&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nv"&gt;$field_map_kv_store&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$entity_type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$map&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="c1"&gt;// Remove entity type definition if empty after unsetting.&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$field_map_kv_store&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$entity_type&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$field_map_kv_store&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;delete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$entity_type&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Nel codice precedente viene mostrato come esempio un errore sull'entità di tipo &lt;code&gt;paragraph&lt;/code&gt;, sul bundle &lt;code&gt;text&lt;/code&gt; dove il campo che causa il problema è &lt;code&gt;field_image&lt;/code&gt;.&lt;br&gt;
In questo modo si pulisce la definizione del campo &lt;code&gt;field_image&lt;/code&gt; togliendo il suo riferimento al bundle &lt;code&gt;text&lt;/code&gt; e se alla fine della pulizia se il campo non ha altri bundle al suo interno si procede all'eliminazione del campo stesso.&lt;br&gt;
Proseguendo con la stessa logica se alla conclusione anche il tipo di entità è vuoto allora procediamo alla sua cancellazione.&lt;/p&gt;

&lt;p&gt;Se l'errore è presente su più di un campo si può tranquillamente inserire la funzione in un &lt;code&gt;foreach&lt;/code&gt; dove cambiando i parametri &lt;code&gt;$entity_type&lt;/code&gt;, &lt;code&gt;$bundle&lt;/code&gt; e &lt;code&gt;$field_name&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creando un modulo personalizzato:
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;1 - Incomincia creando una cartella chiamato nel modo che preferisci, userò il placeholder &lt;code&gt;[MY_MODULE]&lt;/code&gt; per indicare il nome del modulo.  &lt;/p&gt;

&lt;p&gt;2 - All'interno della cartella, crea un file con nome &lt;code&gt;[MY_MODULE].info.yml&lt;/code&gt; e il suo contenuto dovrà essere:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;My Module&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Fixes Error - A non-existent config entity name returned by FieldStorageConfigInterface::getBundles().&lt;/span&gt;
&lt;span class="na"&gt;package&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Custom&lt;/span&gt;
&lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;module&lt;/span&gt;
&lt;span class="na"&gt;core_version_requirement&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;^9.4 || ^10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3 - Crea un altro file chiamato &lt;code&gt;drush.services.yml&lt;/code&gt; e inserisci dentro questo codice:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;update.commands&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;\Drupal\[MY_MODULE]\Commands\UpdateCommands&lt;/span&gt;
    &lt;span class="na"&gt;arguments&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;@keyvalue'&lt;/span&gt;
    &lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;drush.command&lt;/span&gt; &lt;span class="pi"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4 - Crea una cartella &lt;code&gt;src&lt;/code&gt;, dentro la quale crea un'altra cartella &lt;code&gt;Commands&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
  5 - All'interno della cartella &lt;code&gt;Commands&lt;/code&gt;, crea il file &lt;code&gt;UpdateCommands.php&lt;/code&gt; e inserisci al suo interno questo codice:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="kn"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;Drupal&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;MY_MODULE&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="nc"&gt;\Commands&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Drush\Commands\DrushCommands&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Drupal\Core\KeyValueStore\KeyValueFactoryInterface&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cd"&gt;/**
 * A Drush commandfile.
 *
 * In addition to this file, you need a drush.services.yml
 * in root of your module, and a composer.json file that provides the name
 * of the services file to use.
 *
 * See these files for an example of injecting Drupal services:
 *   - http://git.drupalcode.org/devel/tree/src/Commands/DevelCommands.php
 *   - http://git.drupalcode.org/devel/tree/drush.services.yml
 */&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UpdateCommands&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;DrushCommands&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

  &lt;span class="cd"&gt;/**
   * The key value store to use.
   *
   * @var \Drupal\Core\KeyValueStore\KeyValueStoreInterface
   */&lt;/span&gt;
  &lt;span class="k"&gt;protected&lt;/span&gt; &lt;span class="nv"&gt;$keyValueStore&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="cd"&gt;/**
   * @param \Drupal\Core\KeyValueStore\KeyValueFactoryInterface $key_value_factory
   *   The key value store to use.
   */&lt;/span&gt;
  &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;__construct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;KeyValueFactoryInterface&lt;/span&gt; &lt;span class="nv"&gt;$key_value_factory&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;keyValueStore&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$key_value_factory&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="cd"&gt;/**
   * Corrects a field storage configuration. See https://www.drupal.org/project/drupal/issues/2916266 for more info
   *
   * @command update:correct-field-config-storage
   *
   * @param string $entity_type
   *   Entity type
   * @param string $bundle
   *   Bundle name
   * @param string $field_name
   *   Field name
   */&lt;/span&gt;
  &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;correctFieldStorageConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$entity_type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$bundle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$field_name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$field_map_kv_store&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;keyValueStore&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'entity.definitions.bundle_field_map'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nv"&gt;$map&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$field_map_kv_store&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$entity_type&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;unset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$map&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$field_name&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;'bundles'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="nv"&gt;$bundle&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;

    &lt;span class="c1"&gt;// Remove field definition if empty.&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$map&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$field_name&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;'bundles'&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;unset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$map&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$field_name&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nv"&gt;$field_map_kv_store&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$entity_type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$map&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Remove entity type definition if empty after unsetting.&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$field_map_kv_store&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$entity_type&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nv"&gt;$field_map_kv_store&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;delete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$entity_type&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;6 - Inserisci il modulo nella cartella &lt;code&gt;web/modules/custom/&lt;/code&gt; del tuo sito, attivalo da interfaccia grafica o con &lt;code&gt;drush en [MY_MODULE]&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
  7 - Adesso puoi usare il comando drush custom che è stato appena creato con &lt;code&gt;drush update:correct-field-config-storage [ENTITY_TYPE] [BUNDLE] [FIELD_NAME]&lt;/code&gt;. Usando l'esempio di prima otterremmo questo comando &lt;code&gt;drush update:correct-field-config-storage paragraph text field_image&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
  8 - Dopo aver seguito il comando l'errore dovrebbe essere scomparso e puoi disabilitare il modulo con &lt;code&gt;drush pmu [MY_MODULE]&lt;/code&gt; e successivamente rimuoverlo.  &lt;/p&gt;

&lt;p&gt;Un grande ringraziamento va alla community di Drupal che ha trovato la soluzione che ho leggermente modificato.&lt;/p&gt;

</description>
      <category>drupal</category>
      <category>fix</category>
      <category>italian</category>
    </item>
    <item>
      <title>Come rimuovere le versioni di Snap per liberare spazio su disco</title>
      <dc:creator>McAle</dc:creator>
      <pubDate>Fri, 07 Jun 2024 07:04:35 +0000</pubDate>
      <link>https://dev.to/mcale/come-rimuovere-le-versioni-di-snap-per-liberare-spazio-su-disco-15bk</link>
      <guid>https://dev.to/mcale/come-rimuovere-le-versioni-di-snap-per-liberare-spazio-su-disco-15bk</guid>
      <description>&lt;p&gt;Fonte: &lt;a href="https://dev.to/taimenwillems/how-to-clean-up-snap-versions-to-free-up-disk-space-22o2"&gt;How to Clean Up Snap Versions to Free Up Disk Space&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintomi: la partizione contenente &lt;code&gt;/var&lt;/code&gt; sta finendo lo spazio presente sul disco&lt;/strong&gt;&lt;br&gt;
Sistema Operativo: &lt;em&gt;Linux Ubuntu&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Questa veloce guida, con uno script, aiuta a fare pulizia delle vecchie versioni di snap e libera dello spazio sul disco.&lt;/p&gt;

&lt;p&gt;Snap può consumare una notevole quantità di spazio di archiviazione perché mantiene in memoria le vecchie revisioni di un software per motivi di manutenzione.&lt;/p&gt;

&lt;p&gt;Snap salva di default le ultime 3 revisioni del software, compresa la versione attualmente in uso. Questa impostazione può andar bene se non si hanno limitazioni sullo spazio occupato su disco.&lt;/p&gt;

&lt;p&gt;Ma spesso per server e in altri casi, questa impostazione può portare a problematiche legate al consumo di memoria.&lt;/p&gt;

&lt;p&gt;Tuttavia, puoi facilmente modificare il numero di revisioni salvate con il seguente comando. Il valore deve essere compreso tra 2 e 20.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;snap &lt;span class="nb"&gt;set &lt;/span&gt;system refresh.retain&lt;span class="o"&gt;=&lt;/span&gt;2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Rimuovere le versioni di Snap
&lt;/h1&gt;

&lt;p&gt;In un &lt;a href="https://superuser.com/questions/1310825/how-to-remove-old-version-of-installed-snaps/1330590#1330590"&gt;post&lt;/a&gt; sul sito &lt;em&gt;superuser&lt;/em&gt;, l'utente &lt;em&gt;Popey&lt;/em&gt;, ha fornito un semplice script che rimuove le vecchie versioni di Snap e mantiene l'ultima.&lt;/p&gt;

&lt;p&gt;Utilizza &lt;code&gt;nano&lt;/code&gt; o il tuo IDE preferito per creare un file nella cartella &lt;code&gt;/bin/&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /bin/clean_snap.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questo è il contenuto dello script che utilizzeremo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c"&gt;#Rimuove le vecchie revisioni di snap&lt;/span&gt;
&lt;span class="c"&gt;#CHIUDI TUTTE LE ISTANZE DI SNAP PRIMA DI ESEGUIRE QUESTO SCRIPT&lt;/span&gt;
&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;-eu&lt;/span&gt;
&lt;span class="nv"&gt;LANG&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8 snap list &lt;span class="nt"&gt;--all&lt;/span&gt; | &lt;span class="nb"&gt;awk&lt;/span&gt; &lt;span class="s1"&gt;'/disabled/{print $1, $3}'&lt;/span&gt; |
    &lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="nb"&gt;read &lt;/span&gt;snapname revision&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
        &lt;/span&gt;snap remove &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$snapname&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;--revision&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$revision&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Imposta come eseguibile il file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo chmod&lt;/span&gt; +x /bin/clean_snap.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CHIUDI TUTTE LE ISTANZE DI SNAP e poi esegui lo script per rimuovere le vecchie versioni salvate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo&lt;/span&gt; /bin/clean_snap.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>ubuntu</category>
      <category>snap</category>
      <category>italian</category>
      <category>translation</category>
    </item>
  </channel>
</rss>
