Ich habe beim Eingeben des Feldnamens Abstand genommen und nun ist der Computername nicht mehr so, wie ich es wollte. Ich weiß, es ist nur ein Ärger. Aber ich frage mich, ob es eine Möglichkeit gibt, den Computernamen eines Feldes zu ändern, sobald es erstellt wurde.
Ich nehme an, das führt mich in den zweiten Teil meiner Frage. Wenn ich ein Feld erstellt habe und es nicht mehr verwendet wird, wie lösche ich es, muss dies aus der Datenbank erfolgen oder kann es irgendwo in der Benutzeroberfläche erfolgen?
Mein Verfahren besteht darin, zuerst das Feld mit drush zu klonen und dann die Felddaten mit DB-Abfragen in die neue Feldtabelle zu kopieren. Nachdem ich den Inhalt des geklonten Felds überprüft habe, lösche ich das ursprüngliche Feld.
Ich mache das so, weil ich denke, dass die Drush-Methode zum Klonen von Feldern immer mindestens so zuverlässig ist wie jeder Kloncode, den ich selbst erstellen könnte, die Abfrage der Datenkopie ist ziemlich einfach und ich kann das neue Feld überprüfen, bevor ich das Original lösche .
drush field-clone field_my_field field_my_field_clone
field_my_field_clone
zBINSERT field_my_field_clone SELECT * FROM field_my_field;
field_my_field_clone
.admin/structure/types/manage/my-content-type/fields
quelle
drush field-delete xxx
und das könnte dir auch gefallendrush sql-query
wie von neubreed vorgeschlagen. @ zkent, Sie müssen das neue Feld in den vorhandenen Ansichten, Bedienfeldern usw. neuIn Drupal 7 können Sie das Modul " Feld umbenennen" verwenden . In Drupal 6 können Sie das CCK- Modul zum Umbenennen von Feldern verwenden .
quelle
Ich habe ein Update-Skript geschrieben, das tatsächlich ein neues Feld und eine neue Instanz mit dem neuen Computernamen erstellt, alle alten Felddaten in die neue kopiert und zuletzt die alte Instanz löscht.
quelle
Ich musste das einfach tun und fand es nicht allzu schwierig, aber meine Seite ist ziemlich einfach.
Versuche dies:
(Tauschen Sie [NEW MACHNIE NAME] und [OLD MACHINE NAME] mit aus.
field_your_field_names
)/admin/reports/fields/views-fields
quelle
// Ändern Sie die Namen der Feldspeichertabellen. Hier ändern wir den Namen der alten Tabelle durch einen neuen Namen.
// Ändern Sie die Feldnamen in den Tabellen field_config und field_instance_config.
quelle
Mit der obigen Antwort drush field-clone können Sie den letzten MySQL-Schritt auch mit Drush ausführen (Beispiel D7):
quelle
Wenn Sie nicht in MySQL herumspielen möchten, können Sie ein Drush-Skript ausprobieren, das ich geschrieben habe und das Feldwertkopie heißt.
Sie müssen zuerst Ihr neues Feld einrichten und dann anrufen
Dadurch werden vorhandene Daten in das neue Feld verschoben, sobald das alte Feld gelöscht wurde.
quelle
Die Funktion db_change_field () kann Ihnen dabei helfen.
quelle
Exportieren Sie die SQL-Datei Ihrer Datenbank, verwenden Sie die Befehlszeile
sed
, um alle Vorkommen des zu ändernden Begriffs zu ersetzen, und importieren Sie Ihre Datenbank erneut.quelle