File: dev-database.rst

package info (click to toggle)
gerbera 2.4.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 15,412 kB
  • sloc: cpp: 44,738; javascript: 13,430; xml: 5,730; ansic: 2,692; sh: 1,555; sql: 237; python: 191; makefile: 13
file content (23 lines) | stat: -rw-r--r-- 1,281 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
.. index:: Database Schema

Database Schema
===============

The database contains 8 tables.
3 tables ``mt_cds_object`` (for media items or directories), ``mt_metadata`` (like artist or track number) and ``grb_cds_resource`` (like bitrate or image size) store details of the media (audio, video and images) and associated items (like subtitles or album art images).
Table ``mt_autoscan`` contains data on autoscan directories.
Table ``grb_playstatus`` contains statistics on played media items.
Table ``grb_client`` stores details on connected clients.
Tables ``mt_internal_setting`` and ``grb_config_value`` store settings (like database version) and configuration values changed via UI.

.. image:: _static/gerbera-db.png

Modify Schema
-------------

- src/database/sql_database.h: Update ``DBVERSION``
- src/database/sqlite3/sqlite3.sql and src/database/mysql/mysql.sql: Modify ``CREATE TABLE`` statements
- src/database/sqlite3/sqlite3-upgrade.xml and src/database/mysql/mysql-upgrade.xml: Add schema update commands
- src/database/sqlite3/sqlite_database.cc and src/database/mysql/mysql_database.cc:
     - Add correct hashy to hashies list (run ``ctest`` to get error on wrong hash)
     - Update hashies[0] for the create scripts (run ``ctest`` to get error on wrong hash)