feat: add store push --force

This will

1. Wipe the remote store
2. Upload all of the local store to remote

Imagine the scenario where you end up with some mixed keys locally :(

You confirm this with

```
atuin store verify
```

You then fix it locally with

```
atuin store purge
```

Ensure that your local changes are reflected remotely with

```
atuin store push --force
```

and then (another PR, coming soon), update all other hosts with

```
atuin store pull --force
```
This commit is contained in:
Ellie Huxtable
2024-02-02 15:05:07 +00:00
parent 3c420f85f6
commit c9a453289e
7 changed files with 94 additions and 2 deletions

View File

@@ -133,6 +133,19 @@ impl Database for Postgres {
Ok(res.0 as i64)
}
async fn delete_store(&self, user: &User) -> DbResult<()> {
sqlx::query(
"delete from store
where user_id = $1",
)
.bind(user.id)
.execute(&self.pool)
.await
.map_err(fix_error)?;
Ok(())
}
async fn delete_history(&self, user: &User, id: String) -> DbResult<()> {
sqlx::query(
"update history