documentation/Database-Information-and-Maintenance.md

33 lines
1.2 KiB
Markdown
Raw Normal View History

2021-01-28 16:04:37 -05:00
---
title: Database-Information-and-Maintenance
description:
published: true
2021-05-23 13:01:19 -04:00
date: 2021-05-23T16:58:27.530Z
2021-01-28 16:04:37 -05:00
tags:
2021-03-14 13:15:53 -04:00
editor: markdown
2021-01-28 16:04:37 -05:00
dateCreated: 2021-01-28T20:39:18.631Z
---
Invidious needs one PostgreSQL database which has the following tables.
2019-01-24 12:49:21 -05:00
2020-08-25 07:48:08 -04:00
- `annotations` Caches annotation data if `cache_annotations` is enabled in [`config.yml`](./Configuration)
- `channel_videos` Stores truncated video info, used to create user feeds
- `channels` Stores UCID and author name
- `nonces` Keeps track of tokens issued to prevent CSRF
- `users` Stores user info, such as preferences, username, subscriptions
- `session_ids` Keeps track of user sessions
- `videos` Stores video cache, used to create "top" page
2019-01-24 12:49:21 -05:00
The table `videos` grows a lot and needs the most storage. You can clean it up using following commands:
```bash
$ sudo -i -u postgres
$ psql invidious -c "DELETE FROM nonces * WHERE expire < current_timestamp"
2019-01-24 12:49:21 -05:00
$ psql invidious -c "TRUNCATE TABLE videos"
$ exit
```
For regular maintenance you should add a cronjob for these commands
```bash
2019-01-25 13:38:56 -05:00
@weekly psql invidious -c "DELETE FROM nonces * WHERE expire < current_timestamp" > /dev/null
@weekly psql invidious -c "TRUNCATE TABLE videos" > /dev/null
2019-01-24 12:49:21 -05:00
```