fix(bootstrap): force EMF init + enable schema-gen on startup
CI / Build Native (push) Successful in 6m24s

El error 'Table USERS not found' en BootstrapAdmin.User.count() se daba
porque en Quarkus native-image, con database.generation=update, el
schema-gen NO corre en startup del container por defecto (corre solo en
dev mode). Resultado: en un H2 fresco, el primer SELECT COUNT(*) del
bootstrap pierde contra una DB sin tablas.

Dos cambios:
1. application.properties: agregar
   quarkus.hibernate-orm.schema-management.run-on-startup=true
   para forzar el schema-gen en startup en prod/native.
2. BootstrapAdmin:
   - @Transactional + EntityManager (em) inyectados
   - em.createNativeQuery('SELECT 1') al inicio de onStart() para
     asegurar que el EMF esté listo y la session esté abierta antes
     del count(). Belt-and-suspenders.
This commit is contained in:
2026-08-15 00:04:17 -04:00
parent 7ed41ac825
commit 07588979e4
2 changed files with 17 additions and 1 deletions
@@ -10,6 +10,10 @@ quarkus.datasource.username=sa
quarkus.datasource.password=
quarkus.hibernate-orm.database.generation=update
quarkus.hibernate-orm.log.sql=false
# En Quarkus native, el schema-gen NO corre en startup por defecto en prod.
# Sin esto, `update` mode no crea las tablas en un H2 fresco y el primer
# `User.count()` en BootstrapAdmin falla con "Table USERS not found".
quarkus.hibernate-orm.schema-management.run-on-startup=true
# JWT
mp.jwt.verify.issuer=shot-crafter-calculator