summaryrefslogtreecommitdiff
path: root/doc/sqlite-database.markdown
blob: 0a6a0ab67b3962802be9a74f0693305006cc5148 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Sqlite database management
==========================

Kanboard uses Sqlite by default to store its data.
All tasks, projects and users are stored inside this database.

Technically, the database is just a single file located inside the directory `data` and named `db.sqlite`.

Export/Backup
-------------

### Command line

Doing a backup is very easy, just copy the file `data/db.sqlite` somewhere else when nobody use the software.

### User interface

You can also download at any time the database directly from the **settings** menu.

The downloaded database is compressed with Gzip, the filename becomes `db.sqlite.gz`.

Import/Restoration
------------------

There is actually no way to restore the database from the user interface.
The restoration must be done manually when no body use the software.

- To restore an old backup, just replace and overwrite the actual file `data/db.sqlite`.
- To uncompress a gzipped database, execute this command from a terminal `gunzip db.sqlite.gz`.

Optimization
------------

Occasionally, it's possible to optimize the database file by running the command `VACUUM`.
This command rebuild the entire database and can be used for several reasons:

- Reduce the file size, deleting data produce empty space but doesn't change the file size.
- The database is fragmented due to frequent inserts or updates.

### From the command line

```
sqlite3 data/db.sqlite 'VACUUM'
```

### From the user interface

Go to the menu **settings** and click on the link **Optimize the database**.

For more information, read the [Sqlite documentation](https://sqlite.org/lang_vacuum.html).