AULA: 05 - Migrations salva no banco principal
[Concluído]
Olá, Rikson!1
Tudo bem?
Criar o novo banco de dados, criou, certo?
O problema está sendo em alternar a conexão e rodar os migrations em cada base, seria isso mesmo?
Se sim, teve algum erro? Qual?
Ele está alternando perfeitamente,
Fiz um teste aqui, nas versões mais recentes do Laravel não precisa do:
DB::purge('tenant');
Basta remover isso e vai dá certo para alternar de database.
Continua sem crias as tabelas, a alternação de base está ok.
retire o DB::purge('tenant'); Mas ainda não funciona :-(
Nenhum erro? Coloca o código no GitHub, que vou me organizar para rodar ele em minha maquina.
Oi professor, não posso colocar no gitHub pois esse projeto é uma refatoração de um sistema de uma empresa ao qual eu trabalho, quem faz essa parte é o setor de desenvolvimento web da empresa. :-0
Professor, encontrei o erro mas só consegui resolver manualmente. Veja o que está ocorrendo:
Quando eu rodo "php artisan tenants:migrations" ele reclama que na base não existe a tabela migrations. Criei essa tabela manualmente
CREATE TABLE IF NOT EXISTS `migrations` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`migration` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`batch` int NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
rodei o comando artisan e ele funcionou. Como resolver esse problema?
"SQLSTATE[42S02]: Base table or view not found: 1146 Table 'sisfrota_company_pm66c.migrations' doesn't exist (Connection: tenant, SQL: select `migration` from `migrations` order by `batch` asc, `migration` asc)"
criando a tabela manualmente de "migrations" como citado acima ele funciona tranquilo. Aguardando resposta para dar continuidade no projeto. Desde já agradeço.
Opa Rikson!
Experimenta definir a estrutura dessa tabela que você criou manualmente em database/migrations/tenants/
Porque assim você fixa a tabela de migrations também.
Pegou a ideia amigo?
Bom dia/tarde/noite a todos.
Diga professor, tudo bem com o senhor?
O problema é um pouco mais complicado.
Quando vou gerar as migrations(tenants:migrations) dos tenants (com a base já criada), ele reclama que na base não existe a tabela "migrations", como poderia existir uma tabela sendo que a migration nem foi rodada ainda? Consegui explicar?
KKKKKKKKKKKKKKKKKK,
Entendi agora o que o senhor falou (tinha lido mas não compreendido kkkkkkkkkkk bug total aqui no meu juízo). Valeu professor, vou tentar e posto aqui qualquer coisa.
Abraços
Bom dia/tarde/noite/madrugada a todos
Professor fiz o que o senhor indicou mas não functionou.
Coloquei a criação da tabela migration no inicio das migrations do diretório migrations/tenant(como se fosse a primeira a ser criada e não funcionou,depois dessa tentativa eu a renomeei colocando-a no final), mesmo assim deu erro.
O senhor teria mais alguma idéia para que eu possa testar?
Qual foi o erro amigo?
Compartilha comigo os detalhes, que te ajudo a resolver.
Continua o mesmo erro :
""SQLSTATE[42S02]: Base table or view not found: 1146 Table 'sisfrota_company_pm66c.migrations' doesn't exist
(Connection: tenant, SQL: select `migration` from `migrations` order by `batch` asc, `migration` asc)""
Criando a tabela manualmente, tudo funciona, certo?
Pior que precisaria ter uma visão mais ampla do código para conseguir te ajudar.
Sim,
No caso o projeto criaria somente a base de dados automaticamente, as migrations seriam criadas manualmente(aquela velha história do caminho das pedras). Vou continuar pesquisando para tentar desvendar esse mistério.
Beleza amigo, depois se quiser subir um esboço apenas do projeto, eu simulo aqui e te ajudo a resolver.
Abraços []'s
Valeu professor, assim que eu tiver um tempinho faço isso.
Seria interessante resolver essa questão inclusive para futuros desenvolvedores que poderão ter esse problema, vi que nessa aula teve muitos tickets abertos com relação a esse problema.
Mais uma vez muito obrigado, assim que eu subir o sistema eu aviso aqui.
Professor, tudo bem com o senhor?
Encontrei a solução para o problema.
o seguinte:
na tabela companies os tributos abaixo devem ficar assim :
bd_hostname = 127.0.0.1
bd_username = root
bd_password = ''
Ah sim, perfeito.
É porque você não está usando Docker, certo?
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!