admin migrate-database

This commit is contained in:
2025-11-11 15:54:57 +01:00
parent 6f34a0a4fa
commit 31db4ede38
6 changed files with 60 additions and 5 deletions
+16 -1
View File
@@ -10,6 +10,8 @@ use crate::db::DEFAULT_MAX_POOL_SIZE;
#[derive(Clone, Debug, Deserialize)]
pub struct AppConfig {
pub database_url: String,
#[serde(default)]
pub migrations_database_url: Option<String>,
#[serde(default = "default_database_max_pool_size")]
pub database_max_pool_size: u32,
#[serde(default = "default_server_host")]
@@ -86,6 +88,7 @@ impl AppConfig {
tracing::info!(
component,
database_url = %config.redacted_database_url(),
migrations_database_url = %config.redacted_migrations_database_url(),
pool_size = config.database_max_pool_size,
quickwit_enabled = config.quickwit_endpoint.is_some(),
passkeys_enabled = config.webauthn_origin.is_some(),
@@ -107,6 +110,18 @@ impl AppConfig {
pub fn redacted_database_url(&self) -> String {
redact_database_url(&self.database_url)
}
pub fn redacted_migrations_database_url(&self) -> String {
redact_database_url(self.migrations_database_url())
}
pub fn migrations_database_url(&self) -> &str {
if let Some(ref url) = self.migrations_database_url {
url
} else {
&self.database_url
}
}
}
impl AppConfig {
@@ -244,7 +259,7 @@ fn default_webauthn_rp_name() -> String {
"Papercrate".to_string()
}
fn redact_database_url(raw: &str) -> String {
pub fn redact_database_url(raw: &str) -> String {
match Url::parse(raw) {
Ok(mut parsed) => {
if parsed.password().is_some() {