Quitar el prefijo home_ de las 41 tablas del portal

El prefijo venía del nombre de la app Django (`home`), jubilada y borrada hoy,
así que ya no significaba nada: home_stripelog -> stripelog. La BD se sigue
llamando django_wow por historia (renombrarla es otra operación).

Comprobado antes de tocar nada: 0 colisiones con nombres existentes, 0 palabras
reservadas (contrastado contra las 260 de MySQL), sin vistas ni triggers que
dependieran de ellas. El RENAME va en una sola sentencia porque así es atómico,
y MySQL reapunta solo las 4 claves ajenas entre estas tablas.

170 referencias actualizadas en 37 ficheros. Se dejó a propósito
sql/drop_home_securitytoken_authuser_fk.sql sin tocar: es una migración ya
aplicada y reescribirla sería falsear el historial.

De paso salió un fallo previo: prices.ts consultaba `home_restoreitemprice`,
una tabla que NO existe. El try/catch de priceFrom se comía el error y devolvía
siempre el precio por defecto, así que el precio de restaurar objetos nunca fue
configurable. Se deja documentado en el código; crear la tabla es otra decisión.

Verificado tras aplicar: 0 tablas home_, las 51 siguen ahí, y el conteo exacto
de filas cuadra con el volcado previo (store_item 3068, item_data 44873,
stripelog 35, store_order 26, noticia 50). La web responde 200 en todas las
rutas y la portada carga las noticias sin errores.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-15 14:49:19 +00:00
parent 5fd006aca9
commit cccc70338d
39 changed files with 226 additions and 171 deletions
+52
View File
@@ -0,0 +1,52 @@
-- Quitar el prefijo `home_` de las tablas del portal (2026-07-15). APLICADO EN PROD.
--
-- El prefijo venía del nombre de la app Django (`home`), jubilada y borrada ese
-- mismo día. La BD se sigue llamando `django_wow` por historia.
--
-- Va en UNA sola sentencia a propósito: RENAME TABLE con varias tablas es
-- atómico, así que o cambian las 41 o no cambia ninguna. MySQL reajusta solo
-- las claves ajenas que apuntaban a los nombres viejos.
--
-- Se comprobó antes: 0 colisiones, 0 palabras reservadas, sin vistas ni triggers.
RENAME TABLE `home_accountactivation` TO `accountactivation`,
`home_api_points` TO `api_points`,
`home_category` TO `category`,
`home_changefactionprice` TO `changefactionprice`,
`home_changeraceprice` TO `changeraceprice`,
`home_claimedreward` TO `claimedreward`,
`home_clientecategoria` TO `clientecategoria`,
`home_contentcreator` TO `contentcreator`,
`home_customizeprice` TO `customizeprice`,
`home_downloadclientpage` TO `downloadclientpage`,
`home_goldprice` TO `goldprice`,
`home_guildrenamesettings` TO `guildrenamesettings`,
`home_item` TO `item`,
`home_item_data` TO `item_data`,
`home_itemsearchhistory` TO `itemsearchhistory`,
`home_levelupprice` TO `levelupprice`,
`home_loginattempt` TO `loginattempt`,
`home_maintenancemode` TO `maintenancemode`,
`home_noticia` TO `noticia`,
`home_passwordreset` TO `passwordreset`,
`home_pedido` TO `pedido`,
`home_promocode` TO `promocode`,
`home_promoredemption` TO `promoredemption`,
`home_questsearchhistory` TO `questsearchhistory`,
`home_recruitafriend` TO `recruitafriend`,
`home_recruitreward` TO `recruitreward`,
`home_renameprice` TO `renameprice`,
`home_restorehistory` TO `restorehistory`,
`home_revivehistory` TO `revivehistory`,
`home_securitytoken` TO `securitytoken`,
`home_serverselection` TO `serverselection`,
`home_sistemaoperativo` TO `sistemaoperativo`,
`home_store_category` TO `store_category`,
`home_store_item` TO `store_item`,
`home_store_order` TO `store_order`,
`home_stripelog` TO `stripelog`,
`home_tradecode` TO `tradecode`,
`home_transferprice` TO `transferprice`,
`home_unstuckhistory` TO `unstuckhistory`,
`home_votelog` TO `votelog`,
`home_votesite` TO `votesite`;
+3 -3
View File
@@ -1,4 +1,4 @@
-- Siembra de las 50 noticias reales de NovaWoW/UltimoWoW en django_wow.home_noticia.
-- Siembra de las 50 noticias reales de NovaWoW/UltimoWoW en django_wow.noticia.
-- Aplicar: mysql django_wow < sql/seed_news.sql (BD por defecto del portal).
-- fecha_publicacion = fecha del post a las 12:00 menos N segundos por índice
-- (preserva el orden de la lista dentro de una misma fecha). enlace = NULL
@@ -7,8 +7,8 @@
-- cualquier noticia añadida después (p. ej. desde /admin/news). Quita esa
-- línea si solo quieres añadir estas sin borrar las existentes.
SET NAMES utf8mb4;
DELETE FROM home_noticia;
INSERT INTO home_noticia (titulo, contenido, fecha_publicacion, enlace) VALUES
DELETE FROM noticia;
INSERT INTO noticia (titulo, contenido, fecha_publicacion, enlace) VALUES
('FESTIVAL DE FUEGO DEL SOLSTICIO DE VERANO 🌞','Ha comenzado el evento Festival de Fuego del Solsticio de Verano que finaliza el día 5 de Julio.<br>Dispones de una guía completa <a href="https://foro.ultimowow.com/topic/17957-gu%C3%ADa-del-evento-festival-de-fuego-del-solsticio-de-veran" target="_blank" rel="noopener noreferrer">aquí</a>.','2026-06-21 12:00:00',NULL),
('10.ª TEMPORADA DE ARENAS ⚔️','¡La 10.ª Temporada de Arenas ⚔️ ya está en marcha y una nueva batalla por la gloria ha comenzado!<br> Durante los próximos meses, los mejores combatientes del reino se enfrentarán en intensos encuentros para escalar posiciones y luchar por las recompensas más prestigiosas.<br><br> ¡Forma equipo, entra en combate y demuestra de qué eres capaz!<br> Toda la información disponible <a href="https://foro.ultimowow.com/topic/46209-10%C2%AA-temporada-de-arenas/" target="_blank" rel="noopener noreferrer">aquí</a>.','2026-06-08 11:59:59',NULL),
('RESULTADOS FINALES DE LA 8.ª TEMPORADA DE ARENAS ⚔️','El pasado 8 de diciembre de 2025 finalizó nuestra 8.ª Temporada de Arenas y ya se encuentran disponibles los resultados oficiales.<br>En la publicación podrás consultar el listado completo de equipos y jugadores clasificados.<br>Toda la información disponible <a href="https://foro.ultimowow.com/topic/46211-a" target="_blank" rel="noopener noreferrer">aquí</a>.','2026-06-08 11:59:58',NULL),
+2 -2
View File
@@ -1,7 +1,7 @@
-- Recompensas de Recluta a un amigo (home_recruitreward) para el panel de /recruit.
-- Recompensas de Recluta a un amigo (recruitreward) para el panel de /recruit.
-- Aplicar: mysql django_wow < sql/seed_recruit_rewards.sql
SET NAMES utf8mb4;
INSERT INTO home_recruitreward (required_friends, reward_name, item_id, item_quantity, item_link, icon_class) VALUES
INSERT INTO recruitreward (required_friends, reward_name, item_id, item_quantity, item_link, icon_class) VALUES
(1,'Medallón de oro',37297,1,'https://wotlk.ultimowow.com/?item=37297','q3 inv_jewelry_amulet_03'),
(2,'Emblema de escarcha',49426,30,'https://wotlk.ultimowow.com/?item=49426','q4 inv_misc_frostemblem_01'),
(4,'Zhebra presta',37719,1,'https://wotlk.ultimowow.com/?item=37719','q4 ability_mount_charger'),