♻️ (seaorm): Adapta al arranque async

- Elimina `run_now` y convierte `initialize()` en `async fn`.
- `DBCONN` pasa de `LazyLock` a `OnceLock`; `MigratorBase` adopta
  `#[pagetop::async_trait]` con métodos async nativos.
This commit is contained in:
Manuel Cillero 2026-07-06 19:40:54 +02:00
parent 1139df6210
commit 9b2d430d8b
8 changed files with 94 additions and 100 deletions

View file

@ -143,10 +143,6 @@ pub use sea_orm::{
ActiveValue, DatabaseTransaction, ExecResult, QueryOrder, QuerySelect, TransactionTrait,
};
/// Permite implementar *traits* con métodos `async`:
#[doc(inline)]
pub use async_trait;
/// Re-exporta el crate `sea_orm` íntegro como puerta de acceso a su API completa.
///
/// Útil para tipos o utilidades que no están expuestos directamente en [`db::*`](self). La inmensa
@ -176,7 +172,13 @@ pub use sea_orm::sea_query as query;
/// ```
#[inline]
pub fn dbconn() -> &'static DatabaseConnection {
&super::DBCONN
super::DBCONN
// La inicialización requiere async (`Database::connect().await`). OnceLock asigna el valor
// con `.set()` en `Extension::initialize()` (contra LazyLock que sólo admite uso síncrono).
.get()
// Este texto no se multiplica al hacer `#[inline]`, es un `&'static str` que el compilador
// almacena una vez. Sólo se duplica una comprobación de nulo y un salto condicional.
.expect("Database not initialized: SeaORM extension must be listed as a dependency")
}
/// Ejecuta una sentencia SQL en crudo y devuelve su resultado.