2021-01-28 22:04:37 +01:00
|
|
|
---
|
|
|
|
title: Database-Information-and-Maintenance
|
|
|
|
description:
|
|
|
|
published: true
|
2021-05-23 19:01:19 +02:00
|
|
|
date: 2021-05-23T16:58:27.530Z
|
2021-01-28 22:04:37 +01:00
|
|
|
tags:
|
2021-03-14 18:15:53 +01:00
|
|
|
editor: markdown
|
2021-01-28 22:04:37 +01:00
|
|
|
dateCreated: 2021-01-28T20:39:18.631Z
|
|
|
|
---
|
|
|
|
|
2019-02-10 21:06:49 +01:00
|
|
|
Invidious needs one PostgreSQL database which has the following tables.
|
2019-01-24 18:49:21 +01:00
|
|
|
|
2020-08-25 13:48:08 +02:00
|
|
|
- `annotations` Caches annotation data if `cache_annotations` is enabled in [`config.yml`](./Configuration)
|
2022-01-04 17:42:52 +01:00
|
|
|
- `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 18:49:21 +01: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
|
2019-01-24 19:11:14 +01:00
|
|
|
$ psql invidious -c "DELETE FROM nonces * WHERE expire < current_timestamp"
|
2019-01-24 18:49:21 +01:00
|
|
|
$ psql invidious -c "TRUNCATE TABLE videos"
|
|
|
|
$ exit
|
2019-01-24 19:11:14 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
For regular maintenance you should add a cronjob for these commands
|
|
|
|
```bash
|
2019-01-25 19:38:56 +01:00
|
|
|
@weekly psql invidious -c "DELETE FROM nonces * WHERE expire < current_timestamp" > /dev/null
|
|
|
|
@weekly psql invidious -c "TRUNCATE TABLE videos" > /dev/null
|
2022-01-04 17:42:52 +01:00
|
|
|
```
|