From 324a12b0ff8502ccc01ecf7e7a0f81d6dd3b420a Mon Sep 17 00:00:00 2001 From: Aiden McClelland Date: Mon, 19 Jun 2023 15:13:28 -0600 Subject: [PATCH] reset config after pg_upgrade --- backend/src/init.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/backend/src/init.rs b/backend/src/init.rs index 059f605a3..3cacc0726 100644 --- a/backend/src/init.rs +++ b/backend/src/init.rs @@ -126,9 +126,14 @@ pub async fn init_postgres(datadir: impl AsRef) -> Result<(), Error> { let pg_version_string = pg_version.to_string(); let pg_version_path = db_dir.join(&pg_version_string); if tokio::fs::metadata(&pg_version_path).await.is_err() { - let conf_dir = format!("/etc/postgresql/{pg_version}"); + let conf_dir = Path::new("/etc/postgresql").join(pg_version.to_string()); + let conf_dir_tmp = { + let mut tmp = conf_dir.clone(); + tmp.set_extension("tmp"); + tmp + }; if tokio::fs::metadata(&conf_dir).await.is_ok() { - tokio::fs::remove_dir_all(&conf_dir).await?; + tokio::fs::rename(&conf_dir, &conf_dir_tmp).await?; } let mut old_version = pg_version; while old_version > 13 @@ -145,6 +150,12 @@ pub async fn init_postgres(datadir: impl AsRef) -> Result<(), Error> { break; } } + if tokio::fs::metadata(&conf_dir).await.is_ok() { + if tokio::fs::metadata(&conf_dir).await.is_ok() { + tokio::fs::remove_dir_all(&conf_dir).await?; + } + tokio::fs::rename(&conf_dir_tmp, &conf_dir).await?; + } } Command::new("systemctl")