sql: quitar el prefijo home_ de los ficheros que quedaron atrás
El renombrado de las 41 tablas (cccc703) no llegó a los ficheros SQL ni a los
generadores, así que seguían creando y consultando tablas home_* que ya no
existen: aplicarlos hoy no reproducía el portal.
- 12 ficheros pasan a las tablas reales (store_item, stripelog, noticia, ...).
- Los 6 que llevaban el prefijo en el NOMBRE se renombran también; nada los
referenciaba.
- gen_store_catalog.py leía FROM home_store_item de django_wow (roto) y
db2_to_sql.py generaba home_item_data; corregidos, con sus comentarios.
- add_stripelog_service.sql usaba ADD COLUMN IF NOT EXISTS, que es de MariaDB:
en MySQL 9.7 daba error de sintaxis y no se podía aplicar (la columna se había
puesto a mano en prod). Ahora es un ADD COLUMN normal, como su hermano.
Se dejan intactos sql/rename_home_prefix.sql y
sql/drop_home_securitytoken_authuser_fk.sql: son migraciones ya aplicadas y los
nombres home_* son parte de su historia.
Verificado importando todo en BD limpias: los ALTER dejan stripelog y noticia
con el esquema idéntico a producción, y la consulta de gen_store_catalog.py
devuelve filas.
This commit is contained in:
@@ -136,7 +136,7 @@ def db_items():
|
||||
env = os.path.join(HERE, '..', '..', '.env.local')
|
||||
cfg = dict(re.findall(r'^(\w+)=(.*)$', open(env, encoding='utf-8').read(), re.M))
|
||||
q = ('SELECT category_code,item_id,name,IFNULL(icon,""),quantity,currency,price,'
|
||||
'IFNULL(preview,""),sort FROM home_store_item ORDER BY sort,id')
|
||||
'IFNULL(preview,""),sort FROM store_item ORDER BY sort,id')
|
||||
out = subprocess.run(
|
||||
['mysql', '-h', cfg.get('DB_HOST', '127.0.0.1'), '-u', cfg['DB_USER'],
|
||||
f'-p{cfg["DB_PASSWORD"]}', '--default-character-set=utf8mb4', '-N', '--raw',
|
||||
@@ -161,9 +161,9 @@ with open(OUT, 'w', encoding='utf-8') as f:
|
||||
-- `css` es la clase de la CABECERA, que a veces sustituye a first-brown para
|
||||
-- colorear la categoría entera (p.ej. "Brujo" en color de brujo).
|
||||
SET NAMES utf8mb4;
|
||||
DROP TABLE IF EXISTS home_store_item;
|
||||
DROP TABLE IF EXISTS home_store_category;
|
||||
CREATE TABLE home_store_category (
|
||||
DROP TABLE IF EXISTS store_item;
|
||||
DROP TABLE IF EXISTS store_category;
|
||||
CREATE TABLE store_category (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
code VARCHAR(32) NOT NULL UNIQUE,
|
||||
parent_code VARCHAR(32) NULL,
|
||||
@@ -175,7 +175,7 @@ CREATE TABLE home_store_category (
|
||||
sort INT NOT NULL,
|
||||
KEY k_parent (parent_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
CREATE TABLE home_store_item (
|
||||
CREATE TABLE store_item (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
category_code VARCHAR(32) NOT NULL,
|
||||
item_id INT NOT NULL,
|
||||
@@ -193,7 +193,7 @@ CREATE TABLE home_store_item (
|
||||
""")
|
||||
CH = 200
|
||||
for i in range(0, len(cats), CH):
|
||||
f.write('INSERT INTO home_store_category (code,parent_code,name,name_en,css,depth,sort) VALUES\n')
|
||||
f.write('INSERT INTO store_category (code,parent_code,name,name_en,css,depth,sort) VALUES\n')
|
||||
rows = []
|
||||
for n, (code, parent, name, css, depth) in enumerate(cats[i:i + CH], start=i):
|
||||
en = tr_html(name)
|
||||
@@ -202,7 +202,7 @@ CREATE TABLE home_store_item (
|
||||
f"'{esc(en)}'" if en else 'NULL', esc(css), depth, n))
|
||||
f.write(',\n'.join(rows) + ';\n')
|
||||
for i in range(0, len(items), CH):
|
||||
f.write('INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES\n')
|
||||
f.write('INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES\n')
|
||||
rows = []
|
||||
for cc, iid, nm, ic, qty, cur, pr, pv, so in items[i:i + CH]:
|
||||
rows.append("('%s',%s,'%s',%s,%s,'%s',%s,%s,%s)" % (
|
||||
|
||||
@@ -4,7 +4,7 @@ Es una LIBRERÍA: la usa `gen_store_catalog.py` para el `name_en` del seed.
|
||||
Ejecutándolo se comprueban traducciones sueltas (nombres por stdin).
|
||||
|
||||
Prioridad: términos OFICIALES sacados de los DB2 del cliente (ChrClasses,
|
||||
ItemSet, ItemSubClass) y de los nombres bilingües de home_item_data. Solo se
|
||||
ItemSet, ItemSubClass) y de los nombres bilingües de item_data. Solo se
|
||||
traduce a mano lo que la tienda se inventó y no existe en el juego.
|
||||
"""
|
||||
import json
|
||||
@@ -41,7 +41,7 @@ OF = {k.lower(): v for k, v in oficial.items()}
|
||||
|
||||
# Términos extraídos de los nombres bilingües de ítem (no están en ItemSet:
|
||||
# los sets de PvP de WotLK no son ItemSets reales). Verificados con
|
||||
# `SELECT name_es, name_en FROM home_item_data WHERE name_es LIKE ...`.
|
||||
# `SELECT name_es, name_en FROM item_data WHERE name_es LIKE ...`.
|
||||
OF.update({
|
||||
'gladiador furioso': 'Furious Gladiator',
|
||||
'gladiador incansable': 'Relentless Gladiator',
|
||||
|
||||
Reference in New Issue
Block a user