3.8.1
What's Changed
- Alterações LAJE <-- Vida Relevante. by @GabrielPintoSouza in #1591
- Sincronização de branchs by @GabrielPintoSouza in #1615
- Sincronização de branchs by @GabrielPintoSouza in #1625
- Sincronização de branchs nova estrutura do projeto by @GabrielPintoSouza in #1630
- Atualização Gabriel LAJE by @GabrielPintoSouza in #1631
- Pre master laje 260427 by @JoaoVictorPinheiroGrandini in #1644
- Update README.md by @nilsonLazarin in #1639
Full Changelog: 3.8.0...3.8.1
Nova tabela
-- -----------------------------------------------------
-- Table `wegia`.`socio_has_tag`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `wegia`.`socio_has_tag` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`id_socio` INT(11) NOT NULL,
`id_sociotag` INT(11) NOT NULL,
`created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uq_socio_tag` (`id_socio`, `id_sociotag`),
KEY `idx_sociotag` (`id_sociotag`), -- índice extra para busca por tag isolada
CONSTRAINT `fk_socio_has_tag_socio`
FOREIGN KEY (`id_socio`) REFERENCES `wegia`.`socio` (`id_socio`)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_socio_has_tag_sociotag`
FOREIGN KEY (`id_sociotag`) REFERENCES `wegia`.`socio_tag` (`id_sociotag`)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci;Migração para bancos de dados em produção.
-- Migracao para remover a coluna socio.id_sociotag
-- Importante:
-- 1) Faça backup antes de executar em producao.
-- 2) Em MySQL, ALTER TABLE faz commit implicito. Esta migracao nao e atomica.
-- 3) Execute em janela de manutencao.
-- Etapa 1: copiar qualquer tag legada ainda existente em socio.id_sociotag
-- para a tabela pivô, sem duplicar vinculos ja migrados.
INSERT INTO socio_has_tag (id_socio, id_sociotag)
SELECT s.id_socio, s.id_sociotag
FROM socio s
LEFT JOIN socio_has_tag sht
ON sht.id_socio = s.id_socio
AND sht.id_sociotag = s.id_sociotag
WHERE s.id_sociotag IS NOT NULL
AND sht.id IS NULL;
-- Etapa 2: validacao opcional.
-- Esta consulta deve retornar 0 antes da remocao da coluna.
-- SELECT COUNT(*) AS socios_sem_tags_legadas_migradas
-- FROM socio s
-- WHERE s.id_sociotag IS NOT NULL
-- AND NOT EXISTS (
-- SELECT 1
-- FROM socio_has_tag sht
-- WHERE sht.id_socio = s.id_socio
-- AND sht.id_sociotag = s.id_sociotag
-- );
-- Etapa 3: remover FK, indice e coluna antiga.
ALTER TABLE socio
DROP FOREIGN KEY fk_socio_socio_tag1;
ALTER TABLE socio
DROP INDEX fk_socio_socio_tag1_idx;
ALTER TABLE socio
DROP COLUMN id_sociotag;