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
+9 -9
View File
@@ -54,7 +54,7 @@ function generateCode(): string {
async function expireOldCodes(): Promise<void> {
try {
await db(DB.default).query(
"UPDATE home_tradecode SET status = 'expired' WHERE status = 'active' AND expires_at <= NOW()",
"UPDATE tradecode SET status = 'expired' WHERE status = 'active' AND expires_at <= NOW()",
)
} catch {
/* ignore */
@@ -102,12 +102,12 @@ export async function createTradeCode(params: {
// para no poder crear códigos que no se puedan respaldar.
try {
const [bal] = await db(DB.default).query<RowDataPacket[]>(
'SELECT dp FROM home_api_points WHERE accountID = ?',
'SELECT dp FROM api_points WHERE accountID = ?',
[creatorAccount],
)
const balance = bal[0] ? Number(bal[0].dp) : 0
const [act] = await db(DB.default).query<RowDataPacket[]>(
"SELECT COALESCE(SUM(points), 0) AS reserved FROM home_tradecode WHERE creator_account = ? AND status = 'active' AND expires_at > NOW()",
"SELECT COALESCE(SUM(points), 0) AS reserved FROM tradecode WHERE creator_account = ? AND status = 'active' AND expires_at > NOW()",
[creatorAccount],
)
const reserved = Number(act[0]?.reserved ?? 0)
@@ -120,7 +120,7 @@ export async function createTradeCode(params: {
const expiresAt = new Date(Date.now() + CODE_TTL_MS)
try {
await db(DB.default).query(
`INSERT INTO home_tradecode
`INSERT INTO tradecode
(code, creator_account, creator_character, points, gold, status, created_at, expires_at)
VALUES (?, ?, ?, ?, ?, 'active', NOW(), ?)`,
[code, creatorAccount, creatorCharacter, points, gold, expiresAt],
@@ -138,7 +138,7 @@ export async function checkTradeCode(code: string): Promise<{ success: boolean;
await expireOldCodes()
try {
const [rows] = await db(DB.default).query<RowDataPacket[]>(
"SELECT points, gold, status, expires_at FROM home_tradecode WHERE code = ? LIMIT 1",
"SELECT points, gold, status, expires_at FROM tradecode WHERE code = ? LIMIT 1",
[trimmed],
)
const row = rows[0]
@@ -175,7 +175,7 @@ export async function redeemTradeCode(params: {
// Bloqueo de 5 s: la cuenta no puede canjear si acaba de canjear otro código.
try {
const [recent] = await db(DB.default).query<RowDataPacket[]>(
`SELECT id FROM home_tradecode
`SELECT id FROM tradecode
WHERE redeemer_account = ? AND redeemed_at > (NOW() - INTERVAL ? SECOND) LIMIT 1`,
[buyerAccount, REDEEM_LOCK_SECONDS],
)
@@ -193,7 +193,7 @@ export async function redeemTradeCode(params: {
let gold = 0
try {
const [rows] = await db(DB.default).query<RowDataPacket[]>(
"SELECT creator_account, creator_character, points, gold, status, expires_at FROM home_tradecode WHERE code = ? LIMIT 1",
"SELECT creator_account, creator_character, points, gold, status, expires_at FROM tradecode WHERE code = ? LIMIT 1",
[trimmedCode],
)
const row = rows[0]
@@ -223,7 +223,7 @@ export async function redeemTradeCode(params: {
let claimed = false
try {
const [res] = await db(DB.default).query<ResultSetHeader>(
`UPDATE home_tradecode
`UPDATE tradecode
SET status = 'redeemed', redeemer_account = ?, redeemer_character = ?, redeemed_at = NOW()
WHERE code = ? AND status = 'active' AND expires_at > NOW()`,
[buyerAccount, buyerCharacter, trimmedCode],
@@ -237,7 +237,7 @@ export async function redeemTradeCode(params: {
const revertClaim = async () => {
try {
await db(DB.default).query(
"UPDATE home_tradecode SET status = 'active', redeemer_account = NULL, redeemer_character = NULL, redeemed_at = NULL WHERE code = ?",
"UPDATE tradecode SET status = 'active', redeemer_account = NULL, redeemer_character = NULL, redeemed_at = NULL WHERE code = ?",
[trimmedCode],
)
} catch {