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

Engenharia reversa do banco de dados #477

Open
wants to merge 107 commits into
base: master
from

Conversation

Projects
None yet
1 participant
@edersoares
Copy link
Member

edersoares commented Jan 2, 2019

Descrição

Engenharia reversa de todo o arquivo database/sqls/initial-database.sql para arquivos de migrations específicos para cada utilidade.

  • Remove o comando php artisan legacy:database e retira do comando composer new-install.
  • Cria o comando php artisan update para fazer atualizações específicas do i-Educar, como renomear uma migration, por exemplo. Adiciona ao comando composer update-install.
  • Adiciona a pasta database/migrations/legacy aos diretórios a serem consultados pelas migrations.

Tabela de prefixos das migrations na pasta database/migrations/legacy:

Prefixo Tipo
2019_01_01_000000 Schemas
2019_01_01_000001 Extensions
2019_01_01_000002 Types
2019_01_01_100000 Tables
2019_01_01_200000 Foreign keys
2019_01_01_300000 Functions
2019_01_01_400000 Triggers
2019_01_01_500000 Views
2019_01_01_600000 Search path
2019_01_01_7******* Inserts
2019_01_01_800000 Old migration

Contexto e motivação

Este trabalho garante um maior controle do banco de dados e visa permitir no futuro a refatoração e a remoção da "dependência" do Postgres. A intenção é removermos todas as regras de negócio do banco movendo-as para a aplicação, assim será possível utilizar outros bancos de dados como SQLite, MySQL, SQLServer ou Oracle.

A utilização de SQLite em memória irá garantir uma extrema performance para rodar testes automatizados e facilitar o desenvolvimento ou demonstração, pois será necessário ter apenas o PHP instalado na máquina para o i-Educar funcionar.

Instalação x atualização

Os comandos de instalação e atualização continuam os mesmos.

Para uma nova instalação, utilizar composer new-install.

Para atualizar uma instalação já existente, utilizar composer update-install.

Incompatibilidade

Não haverá incompatibilidade nem quebras nesta nova abordagem, mas talvez seja interessante avançarmos para 2.2.x. Mas é discutível.

Checklist:

  • Eu li o documento CONTRIBUTING. [REQUIRED]
  • Meu código segue a PSR2. [REQUIRED]
  • Todos os testes novos e existentes estão passando. [REQUIRED]

@edersoares edersoares changed the base branch from artisan-serve to master Jan 4, 2019

@edersoares edersoares added the needs-qa label Jan 7, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment