use crate::config::builders::*;
use crate::error::QuickDbError;
use crate::types::*;
#[deprecated(
since = "0.3.2",
note = "将在v0.4.0版本中移除,请使用DatabaseConfig::builder()模式"
)]
pub fn sqlite_config<S: Into<String>, P: Into<String>>(
alias: S,
path: P,
pool_config: PoolConfig,
id_strategy: Option<IdStrategy>,
) -> Result<DatabaseConfig, QuickDbError> {
DatabaseConfig::builder()
.db_type(DatabaseType::SQLite)
.connection(ConnectionConfig::SQLite {
path: path.into(),
create_if_missing: true,
})
.pool(pool_config)
.alias(alias)
.id_strategy(id_strategy.unwrap_or(IdStrategy::AutoIncrement))
.build()
}
#[deprecated(
since = "0.3.2",
note = "将在v0.4.0版本中移除,请使用DatabaseConfig::builder()模式"
)]
pub fn postgres_config<S: Into<String>>(
alias: S,
host: S,
port: u16,
database: S,
username: S,
password: S,
pool_config: PoolConfig,
id_strategy: Option<IdStrategy>,
) -> Result<DatabaseConfig, QuickDbError> {
DatabaseConfig::builder()
.db_type(DatabaseType::PostgreSQL)
.connection(ConnectionConfig::PostgreSQL {
host: host.into(),
port,
database: database.into(),
username: username.into(),
password: password.into(),
ssl_mode: Some("prefer".to_string()),
tls_config: None,
})
.pool(pool_config)
.alias(alias)
.id_strategy(id_strategy.unwrap_or(IdStrategy::AutoIncrement))
.build()
}
#[deprecated(
since = "0.3.2",
note = "将在v0.4.0版本中移除,请使用DatabaseConfig::builder()模式"
)]
pub fn mysql_config<S: Into<String>>(
alias: S,
host: S,
port: u16,
database: S,
username: S,
password: S,
pool_config: PoolConfig,
id_strategy: Option<IdStrategy>,
) -> Result<DatabaseConfig, QuickDbError> {
DatabaseConfig::builder()
.db_type(DatabaseType::MySQL)
.connection(ConnectionConfig::MySQL {
host: host.into(),
port,
database: database.into(),
username: username.into(),
password: password.into(),
ssl_opts: None,
tls_config: None,
})
.pool(pool_config)
.alias(alias)
.id_strategy(id_strategy.unwrap_or(IdStrategy::AutoIncrement))
.build()
}
#[deprecated(
since = "0.3.2",
note = "将在v0.4.0版本中移除,请使用DatabaseConfig::builder()模式"
)]
pub fn mongodb_config<S: Into<String>>(
alias: S,
host: S,
port: u16,
database: S,
username: Option<S>,
password: Option<S>,
pool_config: PoolConfig,
id_strategy: Option<IdStrategy>,
) -> Result<DatabaseConfig, QuickDbError> {
let connection_config = MongoDbConnectionBuilder::new(host, port, database)
.with_auth(
username.map(|u| u.into()).unwrap_or_default(),
password.map(|p| p.into()).unwrap_or_default(),
)
.build();
DatabaseConfig::builder()
.db_type(DatabaseType::MongoDB)
.connection(connection_config)
.pool(pool_config)
.alias(alias)
.id_strategy(id_strategy.unwrap_or(IdStrategy::AutoIncrement))
.build()
}