Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Facilitar tarefas de manutenção de datasets #501

Open
turicas opened this issue Nov 10, 2020 · 0 comments
Open

Facilitar tarefas de manutenção de datasets #501

turicas opened this issue Nov 10, 2020 · 0 comments

Comments

@turicas
Copy link
Owner

turicas commented Nov 10, 2020

Algumas tarefas administrativas de um dataset são trabalhosas se feitas fora do processo de importação de dados. Exemplo: durante a escrita da issue #500 vi que um campo que deveria estar como filtrável não estava. Entrei então no Django Admin, habilitei frontend_filter desse Field, mas precisei também, manualmente:

  • Reiniciar o app dokku
  • Criar o índice manualmente (ver código abaixo)

Seria interessante termos formas não somente de executar algumas operações facilmente (sem precisar escrever código, seja via execução de um management command ou através do Django Admin), mas também saber o status de importação dos dados (exemplo: saber o tamanho ocupado pelos índices, ver o tamanho - e se existe - do índice para um determinado Field etc.).

Acredito que facilitaremos demais o processo de criar essas estatísticas/ações se modularizarmos a classe core.command.ImportDataCommand, se possível que possam ser chamadas diretamente de um DataTable.

Segue o código que precisei executar para criar o índice manualmente:

from core.commands import ImportDataCommand
from core.models import Table

dataset_slug = "socios-brasil"
tablename = "socios"
table = Table.with_hidden.for_dataset(dataset_slug).named(tablename)
command = ImportDataCommand(
    table,
    import_data=False,
    vacuum=True,
    clear_view_cache=False,
    create_filter_indexes=True,
    fill_choices=True,
    delete_old_table=False,
    collect_date=None,
)
Model = table.get_model(data_table=table.data_table, cache=False)
command.create_filter_indexes(Model)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant