diff --git a/packages/nx/src/native/cache/cache.rs b/packages/nx/src/native/cache/cache.rs index 738dab8c57b..9446cc48009 100644 --- a/packages/nx/src/native/cache/cache.rs +++ b/packages/nx/src/native/cache/cache.rs @@ -237,7 +237,8 @@ impl NxCache { fn record_to_cache(&self, hash: String, code: i16, size: i64) -> anyhow::Result<()> { trace!("Recording to cache: {}, {}, {}", &hash, code, size); self.db.lock().unwrap().execute( - "INSERT OR REPLACE INTO cache_outputs (hash, code, size) VALUES (?1, ?2, ?3)", + "INSERT INTO cache_outputs (hash, code, size) VALUES (?1, ?2, ?3) + ON CONFLICT(hash) DO UPDATE SET code = excluded.code, size = excluded.size, created_at = CURRENT_TIMESTAMP, accessed_at = CURRENT_TIMESTAMP", params![hash, code, size], )?; if self.max_cache_size != 0 { diff --git a/packages/nx/src/native/tasks/details.rs b/packages/nx/src/native/tasks/details.rs index 3973e2d1bb8..19aad7b6967 100644 --- a/packages/nx/src/native/tasks/details.rs +++ b/packages/nx/src/native/tasks/details.rs @@ -40,7 +40,10 @@ impl TaskDetails { pub fn record_task_details(&mut self, tasks: Vec) -> anyhow::Result<()> { trace!("Recording task details"); self.db.lock().unwrap().transaction(|conn| { - let mut stmt = conn.prepare("INSERT OR REPLACE INTO task_details (hash, project, target, configuration) VALUES (?1, ?2, ?3, ?4)")?; + let mut stmt = conn.prepare( + "INSERT INTO task_details (hash, project, target, configuration) VALUES (?1, ?2, ?3, ?4) + ON CONFLICT(hash) DO UPDATE SET project = excluded.project, target = excluded.target, configuration = excluded.configuration" + )?; for task in tasks.iter() { stmt.execute( params![task.hash, task.project, task.target, task.configuration],