47 lines
1.1 KiB
Markdown

# PostgreSQL Utility Scripts
Currently there is one script: `purge_ttl.py`.
## purge_ttl.py
Purge expired items (BSOs and batches) from a Sync storage PostgreSQL instance.
The script is intended to be invoked regularly, e.g. as a cronjob.
### Prerequisites
- Python 3
- [Poetry](https://python-poetry.org/docs/#installation)
### Run Script Locally
```bash
cd tools/postgres
poetry install
SYNC_SYNCSTORAGE__DATABASE_URL="postgresql://user:pass@localhost/syncstorage poetry run python purge_ttl.py"
```
Pass `-h` to see the list of options.
### Run Tests Locally
```bash
cd tools/postgres
poetry install
SYNC_SYNCSTORAGE__DATABASE_URL="postgresql://user:pass@localhost/syncstorage poetry run pytest test_purge_ttl.py -v"
```
### Run with Docker
A Docker image with the PostgreSQL build is not published anywhere at the
moment. Once that's available, this readme will be updated to include that
step.
```bash
docker run --rm \
--entrypoint python3 \
-e SYNC_SYNCSTORAGE__DATABASE_URL="postgresql://user:pass@host:5432/syncstorage" \
syncstorage-postgres-image:tag \
/app/tools/postgres/purge_ttl.py
```