radar
radar copied to clipboard
#465 - Gerando dump com comando python dumpdata em json
Utilizamos o comando dumpdata do django para fazer o dump em json, caso queiram testar fora do ambiente de produção, utilizar o comando:
sudo docker-compose exec django python manage.py runcrons cron.jobs.DbDumperJob --force
Co-authored-by: Felipe Osório [email protected] Co-authored-by: Harrison Pedro [email protected]
Pull Request Test Coverage Report for Build 981
- 0 of 0 changed or added relevant lines in 0 files are covered.
- No unchanged relevant lines lost coverage.
- Overall coverage remained the same at 82.054%
Totals | |
---|---|
Change from base Build 978: | 0.0% |
Covered Lines: | 3923 |
Relevant Lines: | 4781 |
💛 - Coveralls
Aliás, aproveitando, caso vocês alterem o código, gostaria de pedir que removam a classe duplicada que está no source (sei que não foram vocês que adicionaram a duplicação, mas se perceberem esse tipo de melhoria que pode ser feita não "se avexem" em fazê-la!)
Já retiramos a classe duplicada, vamos dar uma olhada na documentação para utilização de possíveis parâmetros.
Ops, malz pela classe duplicada!
Mas acho q essa estratégia de gerar o dump como um json do Django não é uma boa.
[O pessoal da UnB não tinha como saber, mas] um dos objetivos do dump é permitir que outras pessoas possam importar o banco em suas máquinas e explorar os dados com SQL. Já é muito pedir pra que usem o PostgreSQL (idealmente o dump deveria ser um SQL padrão, importável em qualquer banco SQL), mas fazer com que a reimportação dependa do Python/Django aí piora a situação.
Talvez isso possa ser rebatido com algo tipo "oh, mas é fácil importar json -> banco usando XYZ", mas aí teríamos que saber isso e incluir essas instruções na página http://radarparlamentar.polignu.org/dados/downloads/. Mas a princípio defendo que o dump continue sendo em formato SQL.
Ok, vamos pensar na estratégia de manter o SQL então.
@leonardofl acho que vale usar o dump em json e depois só convertê-lo para o formato que queremos.
Podemos usar o CSVKit para fazer as transformações desejadas. (json -> csv; csv -> sql; -> csv -> postgesql)
Independente disso, acho que precisamos definir quais dados queremos exportados e "em que formato" (no sentido de: queremos tabelas de relacionamento? Queremos PKs? etc).
Quais dados: todas das tabelas com prefixo "modelagem".
Em q formato: por mim, sql, mantendo chaves primárias, relacionamentos etc (constrains não são necessárias).
Para podermos gerar um arquivo SQL, acho que vai ser necessário ter o postgres no container base, para podermos assim usar o pg_dump e de alguma forma contornar o erro antigo que foi relatado na issue.
Modifiquei para criar com o comando pg_dump e SQL nesse último commit, pelo que testei está tudo OK.
Opa, faltou um arquivo, assim que tiver internet subo!