x

Capítulos principais

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Guia de início rápido - LimeSurvey 3.0+
  3. Instalação - LimeSurvey CE
  4. Como criar um bom inquérito (guia)
  5. Iniciando
  6. Administrando o LimeSurvey
  7. Questionários - introdução
  8. Configurações do questionário
  9. Menu da pesquisa
  10. Estrutura da pesquisa
  11. Perguntas - introdução
  12. Grupos de perguntas - introdução
  13. Questionários - gerenciamento
  14. Opções da barra de ferramentas do questionário
  15. Questionário multilíngue
  16. ExpressionScript Engine - Guia de início rápido
  17. Recursos avançados e não categorizados
  18. FAQ geral
  19. Solução de problemas
  20. Soluções alternativas
  21. Licença
  22. Registro de mudanças da versão
  23. Plugins
 Actions

Refatoração de nomes de campos do LimeSurvey 7

From LimeSurvey Manual

Esta página pode ter sido traduzida automaticamente e conter erros. Ver o original em inglês · Melhorar esta tradução
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Refatoração de nomes de campos e tabelas de respostas - LimeSurvey 7

O LimeSurvey 7 traz uma grande limpeza na forma como as tabelas de respostas e os nomes de campos são gerados. Esta atualização moderniza convenções internas de nomenclatura antigas e cria uma base mais previsível e robusta para plugins, integrações e desenvolvimentos futuros.

Esta página aborda a refatoração das tabelas de respostas e dos nomes de campos.

Por se tratar de uma mudança estrutural, qualquer trabalho personalizado que dependa da nomenclatura antiga pode exigir atualizações. Esta página explica o que muda, como testar com segurança e como se preparar para a atualização.

1. O que muda

1.1 Novos nomes de tabelas

O LimeSurvey agora usa um esquema de nomenclatura consistente para as tabelas relacionadas às respostas.

Nome antigo da tabela Novo nome da tabela
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>

Quaisquer consultas SQL, integrações ou plugins que façam referência a essas tabelas podem exigir ajustes.

1.2 Nova estrutura de nomes de campos

Os nomes de campos agora seguem um formato previsível e consistente. Exemplos:

  • Q<questionId> - pergunta raiz
  • Q<questionId>_S<subquestionId> - perguntas secundárias
  • Q<questionId>_C<suffix> - comentário ou outros campos
  • campos de classificação: Q<questionId>_S<subquestionId> - os itens de classificação agora são perguntas secundárias (veja 1.3)
  • campos de tempo: em nível de pergunta ou de grupo, dependendo do contexto

Isso substitui a antiga nomenclatura baseada em sidXgidXqid.

1.3 Perguntas de classificação

As perguntas de classificação agora funcionam como os demais tipos de pergunta baseados em perguntas secundárias:

  • Os itens são perguntas secundárias. Os itens classificáveis são armazenados como perguntas secundárias (tipo R), e não como opções de resposta.
  • Os nomes de campos usam o formato padrão de pergunta secundária Q<questionId>_S<subquestionId> (um por item classificado).
  • As respostas são armazenadas em uma única coluna JSON Q<questionId>, como uma matriz ordenada de códigos de itens em que posição = classificação. Exemplo: ["3", "1", "2"]

2. Por que isso é importante

Esta limpeza trata de padrões de nomenclatura que foram definidos formalmente e usados por muitos anos, e os leva a uma estrutura consistente e robusta sobre a qual podemos construir o futuro.

Mudanças estruturais como esta raramente são simples. Elas afetam partes do sistema nas quais muitos plugins e integrações se baseiam, e por isso costumam ser adiadas devido à sua complexidade. Mas manter tudo consistente e previsível é importante para a estabilidade a longo prazo.

Ao tratar disso agora, tornamos o LimeSurvey mais limpo e fácil de expandir, mesmo que a mudança seja praticamente invisível na superfície.

3. Como visualizar previamente os novos nomes de campos

Para ver como qualquer nome de campo existente será mapeado para a nova estrutura do LS7, siga estes passos:

  1. Faça um backup do banco de dados, pois as alterações não são reversíveis e, se algo der errado, será útil ter o banco de dados anterior à mudança para recuperação
  2. Faça o checkout da branch develop-major:
    git checkout develop-major
    ou clone/baixe o projeto diretamente nesta branch em https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Carregue uma página de administração para disparar o script de alteração
  4. Relate qualquer erro que você encontrar durante a execução do script de alteração
  5. Estude os novos nomes de tabelas e de campos
  6. Teste seus plugins/temas e corrija os erros relacionados a nomes de tabelas e/ou de campos

A função usada para converter os nomes de campos antigos em novos nomes de campos é a seguinte:

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

Parâmetros

  • $tableName - nome original da tabela
  • $fieldName - nome original do campo
  • $questions - pergunta raiz e suas perguntas secundárias
  • $sid - ID do questionário
  • $gid - ID do grupo
  • $cd - indica se a lógica do Designer de condições se aplica

Resultado

A função retorna o novo nome de campo do LS7 para esse campo de resposta.

4. Como testar as alterações com segurança

Recomendamos fortemente testar o LS7 em um ambiente dedicado antes de atualizar os sistemas de produção.

4.1 Instale o LS7 em um ambiente separado

Baixe a versão mais recente do LS7 em:

https://community.limesurvey.org

Instale-o separadamente da sua instalação atual.

4.2 Importe seus recursos existentes

Faça testes usando:

  • questionários
  • Temas de questionário
  • Modelos de administração
  • Temas de perguntas
  • plugins
  • JavaScript personalizado
  • quaisquer integrações personalizadas que você tenha criado

Verifique se tudo funciona conforme esperado com a nova nomenclatura de tabelas e nomes de campos. Atualize qualquer código que dependa da nomenclatura antiga.

4.3 Como acionar a migração?

Se você quiser visualizar previamente a lógica de migração em sua instalação de teste:

  1. Faça backup do seu banco de dados.
  2. Instale a versão LS7.
  3. Carregue qualquer página de administração para executar o script de migração.
  4. Revise as alterações nas tabelas e nos nomes de campos.
  5. Teste a aplicação.
  6. Atualize o código personalizado, se necessário.

4.4 Relatar problemas

Obrigado por testar com antecedência. Se você notar algo estranho no Principal, relate-o para que possamos corrigi-lo o mais rápido possível.

https://bugs.limesurvey.org

5. O que pode exigir atualizações

Os itens a seguir podem precisar de ajustes:

  • plugins que referenciam nomes de campos ou nomes de tabelas antigos
  • quaisquer integrações personalizadas que você tenha criado
  • JavaScript que usa seletores baseados em nomes de campos
  • temas personalizados que interagem com identificadores relacionados às respostas
  • integrações que dependem do esquema de nomenclatura anterior
  • importação de exportações antigas, como questionários, temas, Temas de perguntas etc.

Isso é esperado e faz parte do processo de atualização.

6. Resumo

  • O LS7 introduz uma limpeza completa da nomenclatura das tabelas de respostas e dos nomes de campos
  • Esta é a principal mudança estrutural de backend do LS7
  • É altamente recomendável testar em um ambiente separado
  • getFieldName() ajuda a visualizar previamente a nova nomenclatura
  • Atualize o código personalizado quando necessário
  • Relate os problemas o quanto antes para ajudar a estabilizar a versão final