-- ============================================================================= -- 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;