Exportar/importar configurações

Nada muito grande, mas encontrei um pequeno problema ao usar site_settings:import e ele me pegou feio.
Existe uma solução rápida e feia (executar a tarefa rake duas vezes), mas isso é tipicamente algo executado sem intervenção, então não percebi o erro de imediato.

Arquivo de configurações exportado (parcial) (site_settings:export)

sso_overrides_email: 'true'
email_editable: 'false'

Importando esse arquivo para outro fórum:

ERRO: sso_overrides_email: Você deve desativar 'email editável' antes de ativar essa configuração.
email_editable alterado DE: t PARA: false

A segunda execução, é claro, pega a configuração:

Alterado sso_overrides_email DE: f PARA: true

Possíveis soluções:

  • Aceitar isso e simplesmente executar a tarefa de importação rake duas vezes
  • Exportar as configurações na ordem de updated_at
  • Fazer com que a tarefa rake execute a importação duas vezes
  • Desabilitar esse tipo de verificação ao importar de um arquivo
3 curtidas

Qual solução você acha que faz mais sentido?

Não tenho certeza.

funciona, não exige muito esforço e é o mais lógico, mas ainda falhará se restrições adicionais forem implementadas após as configurações serem feitas.

funciona, mas não fará sentido para as pessoas,

é realmente feio, mas funciona.

pode introduzir todo tipo de coisa ruim e pode exigir muito esforço.

2 curtidas

Acho que isso não vai funcionar.

Para mim, o mais simples é executar isso duas vezes e, se der erro na segunda vez, abortar.

Dito isso, não é tão trivial quanto “executar duas vezes”.

  1. Você executa pela primeira vez, capturando erros em qualquer configuração específica que definir.
  2. Na segunda vez, você executa tudo em lote e aborta se algo falhar.

Se já estamos lidando com essa bagunça, temos que tratar casos em que há múltiplas dependências envolvidas.

Também há a questão do rollback limpo, então isso não é uma tarefa trivial de forma alguma.

2 curtidas