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. Começando
  6. Administração do LimeSurvey
  7. Inquéritos - introdução
  8. Configurações do inquérito
  9. Menu de inquérito
  10. Estrutura do inquérito
  11. Perguntas - introdução
  12. Grupos de perguntas - introdução
  13. Pesquisas - gestão
  14. Opções da barra de ferramentas do inquérito
  15. Inquérito multilingue
  16. ExpressionScript Engine - Guia de início rápido
  17. Recursos não categorizados e avançados
  18. Perguntas frequentes gerais
  19. Resolução de problemas
  20. Soluções alternativas
  21. Licença
  22. Registo de alterações das versões
  23. Plugins
 Actions

Refatoração dos nomes de campos no 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 dos nomes de campos e das tabelas de respostas - LimeSurvey 7

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

Esta página centra-se na refatoração das tabelas de respostas e dos nomes de campos.

Como se trata de uma alteração estrutural, qualquer trabalho personalizado que dependa da nomenclatura antiga pode necessitar de atualizações. Esta página explica o que muda, como testar em segurança e como se preparar para a atualização.

1. O que muda

1.1 Novos nomes de tabelas

O LimeSurvey passa a utilizar um esquema de nomenclatura consistente para as tabelas relacionadas com as 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 estas tabelas podem necessitar de ajustes.

1.2 Nova estrutura dos nomes de campos

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

  • Q<questionId> - pergunta principal
  • 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 são agora perguntas secundárias (ver 1.3)
  • campos de tempo: ao nível da pergunta ou do grupo, consoante o contexto

Isto substitui a antiga nomenclatura baseada em sidXgidXqid.

1.3 Perguntas de classificação

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

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

2. Porque é que isto é importante

Esta limpeza resolve padrões de nomenclatura que foram definidos formalmente e utilizados durante muitos anos, e converte-os numa estrutura consistente e robusta sobre a qual podemos construir no futuro.

Alterações estruturais como esta raramente são simples. Afetam partes do sistema em que assentam muitos plugins e integrações, razão pela qual são frequentemente adiadas devido à sua complexidade. No entanto, manter a consistência e a previsibilidade é importante para a estabilidade a longo prazo.

Ao tratar disto agora, tornamos o LimeSurvey mais limpo e mais fácil de expandir, mesmo que a alteração seja, em grande parte, invisível à superfície.

3. Como pré-visualizar os novos nomes de campos

Para ver como qualquer nome de campo existente será mapeado para a nova estrutura do LS7, pode seguir os passos seguintes:

  1. Faça uma cópia de segurança da base de dados, pois as alterações não são reversíveis e, se algo correr mal, será útil ter a base de dados anterior à alteração para a recuperar
  2. Faça checkout do ramo develop-major:
    git checkout develop-major
    ou clone/descarregue o projeto diretamente neste ramo em https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Carregue uma página de administração para acionar o script de alteração
  4. Comunique qualquer erro que possa ocorrer durante a execução do script de alteração
  5. Estude os novos nomes de tabelas e de campos
  6. Teste os seus plugins/temas e corrija os erros relacionados com nomes de tabelas e/ou de campos

A função utilizada 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 principal e respetivas perguntas secundárias
  • $sid - ID do inquérito
  • $gid - Identificador do grupo de perguntas
  • $cd - indica se a lógica do Construtor de condições se aplica

Resultado

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

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

Recomenda-se vivamente testar o LS7 num ambiente dedicado antes de atualizar os sistemas de produção.

4.1 Instalar o LS7 num ambiente separado

Descarregue a versão mais recente do LS7 em:

https://community.limesurvey.org

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

4.2 Importar os seus recursos existentes

Teste utilizando:

  • inquéritos
  • Temas de inquéritos
  • Temas de administração
  • Temas de perguntas
  • plugins
  • JavaScript personalizado
  • quaisquer integrações personalizadas que tenha desenvolvido

Verifique se tudo funciona como 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 quiser pré-visualizar a lógica de migração na sua instalação de teste:

  1. Faça uma cópia de segurança da sua base de dados.
  2. Instale a versão LS7
  3. Carregue qualquer página de administração para executar o script de migração.
  4. Reveja 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 Comunicar problemas

Obrigado por testar numa fase tão inicial. Se detetar algo que pareça incorreto no Principal, comunique-nos para que possamos corrigi-lo o mais depressa possível.

https://bugs.limesurvey.org

5. O que pode necessitar de atualização

Os seguintes elementos podem necessitar de ajustes:

  • plugins que referenciam nomes de campos ou nomes de tabelas antigos
  • quaisquer integrações personalizadas que tenha desenvolvido
  • JavaScript que utiliza seletores baseados em nomes de campos
  • temas personalizados que interagem com identificadores relacionados com respostas
  • integrações dependentes da nomenclatura anterior
  • importação de exportações antigas, como inquéritos, temas, temas de perguntas, etc.

Isto é 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 alteração estrutural de backend do LS7
  • Recomenda-se vivamente testar num ambiente separado
  • getFieldName() ajuda a pré-visualizar a futura nomenclatura
  • Atualize o código personalizado sempre que necessário
  • Comunique os problemas cedo para ajudar a estabilizar a versão final