ajustes
This commit is contained in:
89
database/migrations/2025_12_07_migrate_from_old_app.sql
Normal file
89
database/migrations/2025_12_07_migrate_from_old_app.sql
Normal file
@@ -0,0 +1,89 @@
|
||||
-- =============================================================================
|
||||
-- Script de Migração: dados_antigos.sql → dnsblock
|
||||
-- Data: 2025-12-07
|
||||
-- Descrição: Migra ORDENS e DOMÍNIOS da aplicação antiga para a nova estrutura
|
||||
-- =============================================================================
|
||||
--
|
||||
-- INSTRUÇÕES:
|
||||
-- 1. Faça backup do banco de destino antes de executar
|
||||
-- 2. PRIMEIRO importe o arquivo dados_antigos.sql no banco dnsblock:
|
||||
-- mysql -u usuario -p dnsblock < dados_antigos.sql
|
||||
-- 3. DEPOIS execute este script no banco dnsblock:
|
||||
-- mysql -u usuario -p dnsblock < 2025_12_07_migrate_from_old_app.sql
|
||||
--
|
||||
-- O dados_antigos.sql cria as tabelas:
|
||||
-- - dnsblock_ordens (ordens de bloqueio/desbloqueio)
|
||||
-- - dnsblock_dominios (domínios associados às ordens)
|
||||
-- =============================================================================
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
|
||||
-- =============================================================================
|
||||
-- 1. MIGRAR ORDENS (dnsblock_ordens → orders)
|
||||
-- =============================================================================
|
||||
INSERT INTO orders (id, title, type, content, received_at, created_at)
|
||||
SELECT
|
||||
id,
|
||||
descricao AS title,
|
||||
CASE
|
||||
WHEN tipo_ordem = 'bloqueio' THEN 'block'
|
||||
WHEN tipo_ordem = 'desbloqueio' THEN 'unblock'
|
||||
ELSE 'block'
|
||||
END AS type,
|
||||
notas AS content,
|
||||
data_ordem AS received_at,
|
||||
data_cadastro AS created_at
|
||||
FROM dnsblock_ordens
|
||||
ON DUPLICATE KEY UPDATE
|
||||
title = VALUES(title),
|
||||
type = VALUES(type),
|
||||
content = VALUES(content);
|
||||
|
||||
-- =============================================================================
|
||||
-- 2. MIGRAR DOMÍNIOS (dnsblock_dominios → domains)
|
||||
-- =============================================================================
|
||||
-- Domínios únicos com status e última ordem
|
||||
INSERT INTO domains (name, status, last_order_id, created_at, updated_at)
|
||||
SELECT
|
||||
dominio AS name,
|
||||
CASE WHEN status = 1 THEN 'blocked' ELSE 'unblocked' END AS status,
|
||||
(SELECT MAX(ordem_id) FROM dnsblock_dominios d2 WHERE d2.dominio = d1.dominio) AS last_order_id,
|
||||
MIN(data_cadastro) AS created_at,
|
||||
MAX(data_cadastro) AS updated_at
|
||||
FROM dnsblock_dominios d1
|
||||
GROUP BY dominio
|
||||
ON DUPLICATE KEY UPDATE
|
||||
status = VALUES(status),
|
||||
last_order_id = VALUES(last_order_id),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
-- =============================================================================
|
||||
-- 3. MIGRAR ITENS DE ORDEM (dnsblock_dominios → order_items)
|
||||
-- =============================================================================
|
||||
INSERT INTO order_items (order_id, domain_id, action)
|
||||
SELECT DISTINCT
|
||||
dd.ordem_id AS order_id,
|
||||
dom.id AS domain_id,
|
||||
o.type AS action
|
||||
FROM dnsblock_dominios dd
|
||||
JOIN domains dom ON dom.name = dd.dominio
|
||||
JOIN orders o ON o.id = dd.ordem_id
|
||||
ON DUPLICATE KEY UPDATE action = VALUES(action);
|
||||
|
||||
-- =============================================================================
|
||||
-- LIMPEZA (remover tabelas do banco antigo após migração)
|
||||
-- =============================================================================
|
||||
-- Descomente as linhas abaixo após verificar que a migração foi bem sucedida:
|
||||
-- DROP TABLE IF EXISTS dnsblock_dominios;
|
||||
-- DROP TABLE IF EXISTS dnsblock_ordens;
|
||||
|
||||
-- =============================================================================
|
||||
-- FINALIZAÇÃO
|
||||
-- =============================================================================
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
-- Verificação
|
||||
SELECT 'Ordens migradas:' AS info, COUNT(*) AS total FROM orders;
|
||||
SELECT 'Domínios migrados:' AS info, COUNT(*) AS total FROM domains;
|
||||
SELECT 'Itens de ordem:' AS info, COUNT(*) AS total FROM order_items;
|
||||
Reference in New Issue
Block a user