use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(tag = "Driver")]
pub enum DatabaseDriver {
#[cfg(feature = "sqlite")]
#[serde(rename_all = "PascalCase")]
SQLite {
filename: String,
},
#[cfg(feature = "postgres")]
#[serde(rename_all = "PascalCase")]
Postgres {
name: String,
host: String,
port: u16,
user: String,
password: String,
},
#[cfg(feature = "mysql")]
#[serde(rename_all = "PascalCase")]
MySQL {
name: String,
host: String,
port: u16,
user: String,
password: String,
},
}
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "PascalCase")]
pub struct DatabaseConfig {
#[serde(flatten)]
pub driver: DatabaseDriver,
pub last_migration_table_name: Option<String>,
}