✨ (seaorm): Incluye DbType y retoca docs de config
This commit is contained in:
parent
3951f1da1a
commit
dfc1bdbc4c
4 changed files with 42 additions and 22 deletions
|
|
@ -4,12 +4,12 @@
|
|||
//!
|
||||
//! ```toml
|
||||
//! [database]
|
||||
//! db_type = "mysql"
|
||||
//! db_type = "postgres"
|
||||
//! db_name = "db"
|
||||
//! db_user = "user"
|
||||
//! db_pass = "password"
|
||||
//! db_host = "localhost"
|
||||
//! db_port = 3306
|
||||
//! db_port = 5432
|
||||
//! max_pool_size = 5
|
||||
//! ```
|
||||
//!
|
||||
|
|
@ -29,25 +29,28 @@ use serde::Deserialize;
|
|||
|
||||
include_config!(SETTINGS: Settings => [
|
||||
// [database]
|
||||
"database.db_type" => "",
|
||||
"database.db_name" => "",
|
||||
"database.db_user" => "",
|
||||
"database.db_pass" => "",
|
||||
"database.db_host" => "localhost",
|
||||
"database.db_type" => "",
|
||||
"database.db_name" => "",
|
||||
"database.db_user" => "",
|
||||
"database.db_pass" => "",
|
||||
"database.db_host" => "localhost",
|
||||
"database.max_pool_size" => 5,
|
||||
]);
|
||||
|
||||
/// Ajustes para la sección [`Database`] de [`SETTINGS`].
|
||||
#[derive(Debug, Deserialize)]
|
||||
/// Tipos para la sección [`[database]`](Database) de [`SETTINGS`].
|
||||
pub struct Settings {
|
||||
pub database: Database,
|
||||
}
|
||||
|
||||
/// Sección **`[database]`** de la configuración. Forma parte de [`Settings`].
|
||||
#[derive(Debug, Deserialize)]
|
||||
/// Sección `[database]` de la configuración. Forma parte de [`Settings`].
|
||||
pub struct Database {
|
||||
/// Tipo de base de datos: *"mysql"*, *"postgres"* ó *"sqlite"*.
|
||||
pub db_type: String,
|
||||
/// Motor de base de datos.
|
||||
///
|
||||
/// Valores aceptados: `"mysql"` (también `"mariadb"`), `"postgres"` (también `"postgresql"`) y
|
||||
/// `"sqlite"`. Si se omite, la aplicación terminará con un error al arrancar.
|
||||
pub db_type: DbType,
|
||||
/// Nombre (para mysql/postgres) o referencia (para sqlite) de la base de datos.
|
||||
pub db_name: String,
|
||||
/// Usuario de conexión a la base de datos (para mysql/postgres).
|
||||
|
|
@ -56,9 +59,27 @@ pub struct Database {
|
|||
pub db_pass: String,
|
||||
/// Servidor de conexión a la base de datos (para mysql/postgres).
|
||||
pub db_host: String,
|
||||
/// Puerto de conexión a la base de datos (para mysql/postgres). Si es `None` se usa el puerto
|
||||
/// Puerto de conexión a la base de datos (para mysql/postgres). Si se omite, se usa el puerto
|
||||
/// predeterminado para el motor: 3306 para MySQL y 5432 para PostgreSQL.
|
||||
pub db_port: Option<u16>,
|
||||
/// Número máximo de conexiones habilitadas.
|
||||
pub max_pool_size: u32,
|
||||
}
|
||||
|
||||
/// Motor de base de datos. Usado en el campo [`Database::db_type`] de [`SETTINGS`].
|
||||
#[derive(Clone, Copy, Debug, Deserialize)]
|
||||
#[serde(rename_all = "lowercase")]
|
||||
pub enum DbType {
|
||||
/// Valor por defecto cuando `db_type` no está configurado. En este caso la aplicación terminará
|
||||
/// con un error al arrancar.
|
||||
#[serde(rename = "")]
|
||||
Unset,
|
||||
/// Usa el motor MySQL. Acepta también el alias `"mariadb"`.
|
||||
#[serde(alias = "mariadb")]
|
||||
Mysql,
|
||||
/// Usa el motor PostgreSQL. Acepta también el alias `"postgresql"`.
|
||||
#[serde(alias = "postgresql")]
|
||||
Postgres,
|
||||
/// Usa el motor SQLite.
|
||||
Sqlite,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue