From 6ba32ce88c22d318b4dff02e64510a027da57b40 Mon Sep 17 00:00:00 2001 From: link2xt Date: Mon, 21 Sep 2026 11:47:36 +0000 Subject: [PATCH] feat(deltachat-repl): remove "reset" command This is not a correct way to reset the database, it does not even clear the transports table so account stays configured. If someone needs a fresh database, then REPL should be restarted with a new path. --- deltachat-repl/src/cmdline.rs | 59 ----------------------------------- deltachat-repl/src/main.rs | 3 +- 2 files changed, 1 insertion(+), 61 deletions(-) diff --git a/deltachat-repl/src/cmdline.rs b/deltachat-repl/src/cmdline.rs index 910c95353..f04b9759b 100644 --- a/deltachat-repl/src/cmdline.rs +++ b/deltachat-repl/src/cmdline.rs @@ -27,55 +27,6 @@ use deltachat::sql; use deltachat::tools::*; use tokio::fs; -/// Reset database tables. -/// Argument is a bitmask, executing single or multiple actions in one call. -/// e.g. bitmask 7 triggers actions defined with bits 1, 2 and 4. -async fn reset_tables(context: &Context, bits: i32) { - println!("Resetting tables ({bits})..."); - if 0 != bits & 4 { - context - .sql() - .execute("DELETE FROM keypairs;", ()) - .await - .unwrap(); - println!("(4) Private keypairs reset."); - } - if 0 != bits & 8 { - context - .sql() - .execute("DELETE FROM contacts WHERE id>9;", ()) - .await - .unwrap(); - context - .sql() - .execute("DELETE FROM chats WHERE id>9;", ()) - .await - .unwrap(); - context - .sql() - .execute("DELETE FROM chats_contacts;", ()) - .await - .unwrap(); - context - .sql() - .execute("DELETE FROM msgs WHERE id>9;", ()) - .await - .unwrap(); - context - .sql() - .execute( - "DELETE FROM config WHERE keyname LIKE 'imap.%' OR keyname LIKE 'configured%';", - (), - ) - .await - .unwrap(); - context.sql().config_cache().write().await.clear(); - println!("(8) Rest but server config reset."); - } - - context.emit_msgs_changed_without_ids(); -} - async fn poke_eml_file(context: &Context, filename: &Path) -> Result<()> { let data = read_file(context, filename).await?; @@ -304,7 +255,6 @@ pub async fn cmdline(context: Context, line: &str, chat_id: &mut ChatId) -> Resu export-keys\n\ import-keys \n\ poke [|| ]\n\ - reset \n\ stop\n\ =============================================" ), @@ -444,15 +394,6 @@ pub async fn cmdline(context: Context, line: &str, chat_id: &mut ChatId) -> Resu "poke" => { ensure!(poke_spec(&context, Some(arg1)).await, "Poke failed"); } - "reset" => { - ensure!( - !arg1.is_empty(), - "Argument missing: 4=private keys, 8=rest but server config" - ); - let bits: i32 = arg1.parse()?; - ensure!(bits < 16, " must be lower than 16."); - reset_tables(&context, bits).await; - } "stop" => { context.stop_ongoing().await; } diff --git a/deltachat-repl/src/main.rs b/deltachat-repl/src/main.rs index 82734215d..71dc95c03 100644 --- a/deltachat-repl/src/main.rs +++ b/deltachat-repl/src/main.rs @@ -147,7 +147,7 @@ impl Completer for DcHelper { } } -const IMEX_COMMANDS: [&str; 10] = [ +const IMEX_COMMANDS: [&str; 9] = [ "has-backup", "export-backup", "import-backup", @@ -156,7 +156,6 @@ const IMEX_COMMANDS: [&str; 10] = [ "export-keys", "import-keys", "poke", - "reset", "stop", ];