x

Capítulos principales

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Guía de inicio rápido - LimeSurvey 3.0+
  3. Instalación - LimeSurvey CE
  4. Cómo diseñar una buena encuesta (guía)
  5. Empezando
  6. Administración de LimeSurvey
  7. Encuestas - introducción
  8. Configuración de la encuesta
  9. Menú de encuesta
  10. Estructura de la encuesta
  11. Preguntas - introducción
  12. Grupos de preguntas: introducción
  13. Encuestas - gestión
  14. Opciones de la barra de herramientas de encuesta
  15. Encuesta multilingüe
  16. Motor ExpressionScript: guía de inicio rápido
  17. Funciones avanzadas y no categorizadas
  18. FAQ - General
  19. Solución de problemas
  20. Soluciones alternativas
  21. Licencia
  22. Registro de cambios de versión
  23. Complementos - avanzado
 Actions

Refactorización de nombres de campo en LimeSurvey 7

From LimeSurvey Manual

Es posible que esta página se haya traducido automáticamente y contenga errores. Ver el original en inglés · Mejorar esta traducción
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Refactorización de nombres de campo y tablas de respuestas - LimeSurvey 7

LimeSurvey 7 introduce una importante limpieza en la forma en que se generan las tablas de respuestas y los nombres de campo. Esta actualización moderniza convenciones de nomenclatura internas de larga data y crea una base más predecible y sólida para los plugins, las integraciones y el desarrollo futuro.

Esta página se centra en la refactorización de las tablas de respuestas y los nombres de campo.

Dado que se trata de un cambio estructural, cualquier desarrollo personalizado que dependa de la nomenclatura anterior puede requerir actualizaciones. Esta página explica qué cambia, cómo realizar pruebas de forma segura y cómo prepararse para la actualización.

1. Qué cambia

1.1 Nuevos nombres de tabla

LimeSurvey utiliza ahora un esquema de nomenclatura coherente para las tablas relacionadas con las respuestas.

Nombre de tabla anterior Nombre de tabla nuevo
old_survey_<sid>_<timestamp> old_responses_<sid>_<timestamp>
old_survey_<sid>_timings_<timestamp> old_timings_<sid>_<timestamp>
survey_<sid> responses_<sid>
survey_<sid>_timings timings_<sid>

Las consultas SQL, integraciones o plugins que hagan referencia a estas tablas pueden requerir ajustes.

1.2 Nueva estructura de los nombres de campo

Los nombres de campo siguen ahora un formato predecible y coherente. Ejemplos:

  • Q<questionId> - pregunta raíz
  • Q<questionId>_S<subquestionId> - subpreguntas
  • Q<questionId>_C<suffix> - comentario u otros campos
  • campos de ranking: Q<questionId>_S<subquestionId> - los elementos del ranking son ahora subpreguntas (véase 1.3)
  • campos de tiempos: a nivel de pregunta o de grupo, según el contexto

Esto sustituye a la antigua nomenclatura basada en sidXgidXqid.

1.3 Preguntas de ranking

Las preguntas de ranking funcionan ahora como otros tipos de pregunta basados en subpreguntas:

  • Los elementos son subpreguntas. Los elementos clasificables se almacenan como subpreguntas (tipo R), no como opciones de respuesta.
  • Los nombres de campo utilizan el formato estándar de subpregunta Q<questionId>_S<subquestionId> (uno por cada elemento clasificado).
  • Las respuestas se almacenan en una única columna JSON Q<questionId>, como una matriz ordenada de códigos de elementos donde la posición = el rango. Ejemplo: ["3", "1", "2"]

2. Por qué es importante

Esta limpieza aborda patrones de nomenclatura que se definieron formalmente y se utilizaron durante muchos años, y los lleva a una estructura coherente y sólida sobre la que podemos construir en el futuro.

Los cambios estructurales como este rara vez son sencillos. Afectan a partes del sistema en las que se apoyan muchos plugins e integraciones, por lo que a menudo se posponen debido a su complejidad. Sin embargo, mantener la coherencia y la previsibilidad es importante para la estabilidad a largo plazo.

Al abordarlo ahora, hacemos que LimeSurvey sea más limpio y fácil de ampliar, aunque el cambio sea en su mayor parte invisible en la superficie.

3. Cómo obtener una vista previa de los nuevos nombres de campo

Para ver cómo se asignará cualquier nombre de campo existente a la nueva estructura de LS7, puede seguir estos pasos:

  1. Haga una copia de seguridad de la base de datos, ya que los cambios no son reversibles y, si algo sale mal, le será útil disponer de la base de datos anterior al cambio para recuperarla.
  2. Cambie a la rama develop-major (checkout):
    git checkout develop-major
    o clone/descargue el proyecto directamente en esta rama desde https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Cargue una página de administración para ejecutar el script de cambio.
  4. Notifique cualquier error que pueda aparecer durante la ejecución del script de cambio.
  5. Estudie los nuevos nombres de tabla y de campo.
  6. Pruebe sus plugins/temas y corrija los errores relacionados con los nombres de tabla y/o de campo.

La función utilizada para convertir los nombres de campo antiguos en nuevos es la siguiente:

getFieldName($tableName, $fieldName, $questions, $sid, $gid, $cd)

Parámetros

  • $tableName - nombre de tabla original
  • $fieldName - nombre de campo original
  • $questions - pregunta raíz y sus subpreguntas
  • $sid - ID encuesta
  • $gid - ID del grupo
  • $cd - indica si se aplica la lógica del Diseñador de condiciones

Resultado

La función devuelve el nuevo nombre de campo de LS7 para ese campo de respuesta.

4. Cómo probar los cambios de forma segura

Se recomienda encarecidamente probar LS7 en un entorno dedicado antes de actualizar los sistemas de producción.

4.1 Instalar LS7 en un entorno independiente

Descargue la última versión de LS7 desde:

https://community.limesurvey.org

Instálela por separado de su configuración actual.

4.2 Importe sus recursos existentes

Realice las pruebas con:

  • formularios
  • Temas del formulario
  • Temas de la interfaz de administración
  • Temas de pregunta
  • plugins
  • JavaScript personalizado
  • cualquier integración personalizada que haya desarrollado

Compruebe que todo funciona como se espera con la nueva nomenclatura de tablas y nombres de campo. Actualice cualquier código que dependa de la nomenclatura anterior.

4.3 ¿Cómo activar la migración?

Si desea obtener una vista previa de la lógica de migración en su instalación de prueba:

  1. Haga una copia de seguridad de su base de datos.
  2. Instale la versión LS7.
  3. Cargue cualquier página de administración para ejecutar el script de migración.
  4. Revise los cambios en las tablas y en los nombres de campo.
  5. Pruebe la aplicación.
  6. Actualice el código personalizado si es necesario.

4.4 Informar de problemas

Gracias por probarlo tan pronto. Si detecta algo que parezca incorrecto en el núcleo, infórmenos para que podamos solucionarlo lo antes posible.

https://bugs.limesurvey.org

5. Qué puede requerir actualizaciones

Es posible que sea necesario ajustar lo siguiente:

  • plugins que hacen referencia a nombres de campo o de tabla antiguos
  • cualquier integración personalizada que haya desarrollado
  • JavaScript que utilice selectores basados en nombres de campo
  • temas personalizados que interactúen con identificadores relacionados con las respuestas
  • integraciones que dependan del esquema de nomenclatura anterior
  • la importación de exportaciones antiguas, como formularios, temas, Temas de pregunta, etc.

Esto es lo esperado y forma parte del proceso de actualización.

6. Resumen

  • LS7 introduce una limpieza completa de la nomenclatura de las tablas de respuestas y de los nombres de campo
  • Este es el principal cambio estructural del backend en LS7
  • Se recomienda encarecidamente realizar pruebas en un entorno independiente
  • getFieldName() ayuda a obtener una vista previa de la futura nomenclatura
  • Actualice el código personalizado cuando sea necesario
  • Informe de los problemas cuanto antes para ayudar a estabilizar la versión final