J'ai espacé tout en tapant le nom du champ et maintenant le nom de la machine n'est pas ce que je voulais qu'il soit. Je sais que c'est juste une gêne. mais je me demande s'il existe un moyen de modifier le nom de machine d'un champ une fois qu'il est créé.
Je suppose que cela m'amène à la deuxième partie de ma question. si j'ai créé un champ et qu'il n'est plus utilisé, comment puis-je le supprimer, faut-il le faire à partir de la base de données ou peut-il le faire quelque part dans l'interface utilisateur?
Ma procédure consiste à utiliser drush pour cloner le champ en premier, puis copier les données de champ avec des requêtes DB dans la nouvelle table de champ. Après avoir vérifié le contenu du champ cloné, je supprime le champ d'origine.
Je le fais de cette façon parce que je pense que la méthode drush de clonage des champs sera toujours au moins aussi fiable que n'importe quel code de clonage que je pourrais créer moi-même, la requête de copie de données est assez simple et je peux vérifier le nouveau champ avant de supprimer l'original .
drush field-clone field_my_field field_my_field_clone
field_my_field_clone
, par exemple,INSERT field_my_field_clone SELECT * FROM field_my_field;
field_my_field_clone
.admin/structure/types/manage/my-content-type/fields
la source
drush field-delete xxx
et vous pourriez aussi aimerdrush sql-query
comme suggéré par neubreed. @zkent, vous devrez relier le nouveau champ dans les vues, panneaux, etc.Dans Drupal 7, vous pouvez utiliser le module Field Rename . Dans Drupal 6, vous pouvez utiliser le module de changement de nom de champ CCK .
la source
J'ai écrit un script de mise à jour, qui crée en fait un nouveau champ et une nouvelle instance avec le nouveau nom de machine, copie toutes les anciennes données de champ dans la nouvelle et supprime enfin l'ancienne instance.
la source
Je devais juste faire cela, et j'ai trouvé que ce n'était pas trop difficile, mais mon site est assez simple.
Essaye ça:
(remplacez [NOUVEAU NOM MACHNIE] et [ANCIEN NOM MACHINE] par
field_your_field_names
)/admin/reports/fields/views-fields
la source
// Modifiez les noms des tables de stockage des champs. Ici, nous modifions le nom de l'ancienne table avec un nouveau nom.
// Modifiez les noms de champ dans les tables field_config et field_instance_config.
la source
Avec la réponse drush field-clone ci-dessus, vous pouvez également effectuer la dernière étape MySQL avec Drush (exemple D7):
la source
Si vous ne voulez pas jouer avec mysql, vous pouvez essayer un script drush que j'ai écrit, appelé copie de la valeur du champ.
Vous devrez d'abord configurer votre nouveau champ, puis appeler
Cela déplacera les données existantes vers le nouveau champ une fois terminé, supprimez l'ancien champ.
la source
La fonction db_change_field () peut vous aider.
la source
Exportez le fichier SQL de votre base de données, utilisez la ligne de commande
sed
pour remplacer toutes les occurrences du terme à modifier et réimportez votre base de données.la source