Me separé mientras escribía el nombre del campo y ahora el nombre de la máquina no es lo que quería que fuera. Sé que es solo una molestia. pero me pregunto si hay alguna forma de alterar el nombre de la máquina de un campo una vez que se crea.
Supongo que esto me lleva a la segunda parte de mi pregunta. si creé un campo y ya no se usa, ¿cómo hago para eliminarlo? ¿Esto tiene que hacerse desde la base de datos o puede hacerse en algún lugar de la interfaz de usuario?
Mi procedimiento es usar drush para clonar el campo primero, luego copiar los datos del campo con consultas DB en la nueva tabla de campos. Después de verificar el contenido del campo clonado, elimino el campo original.
Lo hago de esta manera porque creo que el método drush de clonar campos siempre será al menos tan confiable como cualquier código de clonación que pueda crear, la consulta de copia de datos es bastante simple y puedo verificar el nuevo campo antes de eliminar el original .
drush field-clone field_my_field field_my_field_clone
field_my_field_clone
, por ejemplo,INSERT field_my_field_clone SELECT * FROM field_my_field;
field_my_field_clone
.admin/structure/types/manage/my-content-type/fields
fuente
drush field-delete xxx
y también puede hacer lodrush sql-query
que sugiere neubreed. @zkent, deberá volver a vincular el nuevo campo en las vistas, paneles, etc. existentesEn Drupal 7, puede usar el módulo Field Rename . En Drupal 6, puede usar el módulo de cambio de nombre de campo CCK .
fuente
He escrito un script de actualización, que en realidad crea un nuevo campo e instancia con el nuevo nombre de la máquina, copia todos los datos del campo antiguo al nuevo y finalmente elimina la instancia anterior.
fuente
Simplemente tenía que hacer esto, y descubrí que no era demasiado difícil, pero mi sitio es bastante simple.
Prueba esto:
(cambie [NUEVO NOMBRE DE MÁQUINA] y [NOMBRE DE MÁQUINA ANTERIOR] con
field_your_field_names
)/admin/reports/fields/views-fields
fuente
// Cambiar los nombres de la tabla de almacenamiento de campo. Aquí estamos alterando el nombre de la tabla anterior con un nombre nuevo.
// Cambia los nombres de campo en las tablas field_config y field_instance_config.
fuente
Con la respuesta drush field-clone anterior, puede hacer el último paso de MySQL con Drush también (ejemplo D7):
fuente
Si no quieres jugar en mysql, puedes probar un script drush que escribí llamado Copia de valor de campo.
Primero deberá configurar su nuevo campo y luego llamar
Esto moverá los datos existentes al nuevo campo una vez que haya terminado, elimine el campo anterior.
fuente
La función db_change_field () puede ayudarlo.
fuente
Exporte el archivo SQL de su base de datos, use la línea de comando
sed
para reemplazar todas las apariciones del término a cambiar y vuelva a importar su base de datos.fuente