blendb issueshttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues2019-02-08T12:49:06Zhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/103Adicionar ci a arquivos que não esta sendo coberto2019-02-08T12:49:06ZRafael DiasAdicionar ci a arquivos que não esta sendo cobertoComo as modificações da issue/92 teve impacto nos comandos schema e test-mode, além do docker compose. Avaliar a possibilidade de adicionar a cobertura nos comandos e de inserir o docker-compose no ci.Como as modificações da issue/92 teve impacto nos comandos schema e test-mode, além do docker compose. Avaliar a possibilidade de adicionar a cobertura nos comandos e de inserir o docker-compose no ci.https://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/85Conexão em múltiplos bancos de dados simultâneamente2018-10-03T14:53:04ZLucas Fernandes de OliveiraConexão em múltiplos bancos de dados simultâneamente# Problema
Foi detectado que para a realização da tarefa #58, é necessário se conectar em diversos bancos de dados simultâneamente. Foi detectada que essa não seria uma atualização trivial de ser realizada e terá grandes impactos em dive...# Problema
Foi detectado que para a realização da tarefa #58, é necessário se conectar em diversos bancos de dados simultâneamente. Foi detectada que essa não seria uma atualização trivial de ser realizada e terá grandes impactos em diversas partes do código, por essa razão uma tarefa separada foi criada.
Por enquanto o objetivo da tarefa é permitir a conexão a vários bancos que **compartilham o mesmo esquema**. No futuro pretende-se utilizar esquemas diferentes para cada um dos bancos, entretanto essa alteração seria muito grande e será delegada a uma outra tarefa futura.
Atualmente, conectar-se em múltiplos bancos de dados possui dois benefícios imediatos.
* Realização de testes simultâneos em SGBDs diferentes (garantindo corretude em todos os SGBD's)
* Distribuição de carga entre bases de dados (Que podem ser de SGBD's diferentes)
Além disso a inserção pode ser disparada para todos os adaptadores, mantendo a consistência da base. Ainda não é necessário decidir para qual base uma determinada inserção é enviada.
# Alterações necessárias
* [x] Modificar as variáveis de ambiente para conexão com o banco.
* Uma nova variável deve ser criada: **BLENDB_N_DATABASES** que indica o número de bancos de dados simultâneos sendo utilizados. Ela deve ter como valor *default* 1
* As variáveis **BLENDB_DB_*** devem ser modificadas para **BLENDB_DBN_** onde **DBN** será substituido por **DB0** para o primeiro banco, **DB1** para o segundo e assim sucessivamente
* A variável **BLENDB_ADAPTER** deve ser trocada para **BLENDB_DBN_ADAPTER**, já que cada banco pode ter o seu próprio adaptador
* Uma nova váriavel deve ser criada **BLENDB_SCHEMA** que contém o caminho para o esquema do banco de dados (relativo a raiz do projeto ou absoluto)
* [x] Alterações na leitura da configuração
* No **ConfigParser** trocar a criação da conexão de um objeto **Connection** para uma lista de conexões, uma para cada base.
* Realizar a leitura do arquivo de esquema a partir da váriavel de ambiente **BLENDB_SCHEMA**
* [x] Alterações na inicialização (**main.ts**)
* Remover a leitura *hardcoded* do arquivo de definição de esquema (Atualmente config.yaml ou test.yaml).
* Modificação da *middleware* de adapatdores para receber uma lista e não apenas uma conexão.
* [x] Modificação das *midlewares* de adaptador
* Unificar as *middlewares* de cada adaptador em uma única middleware que devolve uma lista de adaptadores e atribui a uma váriavel req.adapters
* [ ] Alterações nos controladores da API de leitura/escrita
* Criação de uma politica de leitura, sugestão: **round robin**, ou seja, cada nova requisição é enviada para o banco que foi o último a atender uma requisição
* Criação de uma politica de escrita, realizar a escrita em todos os bancos
* Caso 2 bancos na realidade forem o mesmo banco, a inserção será duplicada (inserções com data devem resolver)Revisionhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/101Criar Classe para gerenciar mensagens de erro.2018-12-13T13:14:24ZLucas Fernandes de OliveiraCriar Classe para gerenciar mensagens de erro.Criar uma classe que gera as mensagens de erro.
Essa classe poderia ser chamada de ErrorHandler ou ErrorMsgHandler cujo objetivo é criar as mensagens de erro. Para cada mensagem de erro a classe deve ter um método para gerar uma mensage...Criar uma classe que gera as mensagens de erro.
Essa classe poderia ser chamada de ErrorHandler ou ErrorMsgHandler cujo objetivo é criar as mensagens de erro. Para cada mensagem de erro a classe deve ter um método para gerar uma mensagem específica. Caso a mensagem tenham parametros ela deve receber como argumento de função. A ideia da classe é padronizar as mensagens de erro e reduzir a quantidade de código repleta de strings gigantes.
Uma vez que a classe foi criada substituir as mensagens de erros por chamadas de funções dessa classe.