use serde::{Deserialize, Serialize};
pub mod common;
pub mod connection_string;
pub mod mysql;
pub mod postgresql;
pub mod sqlite;
#[cfg(any(feature = "database", test))]
pub use connection_string::normalize_connection_string_with_redaction;
pub(crate) use connection_string::{is_test_connection_string, normalize_connection_string};
pub mod partition;
pub use partition::{PartitionConfig, PartitionInfo, PartitionManager, PartitionStrategy};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum DatabaseType {
PostgreSQL,
MySQL,
SQLite, }
impl DatabaseType {
pub fn from_url(url: &str) -> Self {
if url.starts_with("postgres://") || url.starts_with("postgresql://") {
DatabaseType::PostgreSQL
} else if url.starts_with("mysql://") {
DatabaseType::MySQL
} else {
DatabaseType::SQLite
}
}
}