Keirost 0.0.11
Cuatro arreglos que sólo se notan fuera de Docker, y que son los que hacían
inservible la instalación nativa de Windows.
El esquema público se genera, ya no se escribe a mano
server.ts llevaba 185 líneas de CREATE TABLE y ALTER TABLE copiadas del
esquema, que se ejecutan en cada arranque para poner al día la base. Estaban al
día, pero mantener una segunda copia a mano es garantizar que algún día deje de
estarlo — y es exactamente lo que había pasado en push-public.ts, con diez
columnas para «GlobalUser» donde el esquema tiene dieciocho.
Ahora las genera scripts/generate-public-schema.mjs desde el propio
schema.ts, filtrando por el tablesFilter de la configuración de Drizzle: las
otras 121 tablas son de empresa y viven en el esquema de cada tenant. De cada
columna sale además un ALTER ADD COLUMN IF NOT EXISTS, que es lo que pone al
día una instalación existente al actualizar. Se genera al compilar y viaja en el
dist.
Fuera el esquema público escrito a mano de push-public.ts
El respaldo de drizzle-kit push creaba «GlobalUser» con diez columnas de
dieciocho, sin firmas, TOTP ni recuperación de contraseña. Y como iba con
IF NOT EXISTS, bastaba con que corriera una vez para que la tabla buena no se
creara nunca; el fallo salía mucho después, al consultarla. Ahora falla y dice
qué ejecutar a mano: un esquema a medias es peor que ninguno.
El asistente de configuración deja de asumir el nombre de la base
openfactudb estaba escrito a fuego en tres sitios de /api/setup. Con Docker
coincide y nunca se notó; en una instalación donde el nombre de la base se
elige, el asistente se conectaba a una base inexistente y fallaba con un
FATAL: database "openfactudb" does not exist que Drizzle envolvía en un
«Failed query: insert into GlobalUser…», despistando por completo.
Ahora sale de la DATABASE_URL con la que arranca el servidor, y el nombre
histórico queda de respaldo para el despliegue con contenedores.
@openfactu/cli al 0.1.2
El rango estaba en ^0.0.9, y sobre un 0.0.x el circunflejo no sube de
versión: el paquete seguía viajando con la 0.0.9 aunque en npm hubiera 0.1.x.
La 0.1.2 trae setup --non-interactive, que es lo que el instalador nativo
invoca para crear el administrador sin nadie delante.
Nadie importa el CLI en tiempo de ejecución —ni el servidor ni la web—: sólo
viaja dentro del paquete para que el instalador lo ejecute.
Esta es la versión que empaqueta el instalador nativo de Windows
(OpenFactu/destokp-program-and-setup), publicada ahí como keirost-v0.0.11.