Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Aplicação multitenancy e versionamento

Boa tarde pessoal! Tenho uma dúvida que talvez seja um pouco complexa, mas vamos lá:

Estou no processo de criação de uma aplicação WEB com PHP e SQL, e, após estudar alguns conceitos sobre estrutura entendi que preciso de uma aplicação multitenancy e que a minha estrutura do banco trabalhará com múltiplas instâncias de banco (sei que isso implica na flexibilidade da aplicação se conectar em múltiplas instâncias) e cada uma tendo múltiplos schemas.

Na parte do back-end irei utilizar o framework Laravel, com a arquitetura MVC com ORM e umas das principais ferramentas que quero utilizar são as migrations para poder manter os clientes (que podem ter diferentes versões) atualizados. Sendo assim, estou tendo um pouco de dificuldade de entender como posso versionar a aplicação para que um cliente possa ter x features enquanto outro tenha y, mas sem que um influencie com os dados (através de migrations) do outro?

Penso em ter uma tabela que indique a quais features cada cliente possui acesso, mas como alinhar isso com as migrations da aplicação?

Grato desde já.

1 resposta
solução!

Olá Diesnei! Tudo joia?

Não entendi o motivo de você ter que usar 2 banco de dados diferentes. Se tiver uma relação com o Multitenacy, não existe razão para usar banco de dados diferentes.

Quanto as migrations, você pode definir qual conexão de banco de dados ela deve ser rodada.

Documentação do Laravel sobre conexões na Migration

Abaixo link da documentação onde você pode encontrar mais detalhes sobre: https://laravel.com/docs/9.x/migrations

Espero ter ajudado de alguma maneira!