Difference between revisions of "Database"

From MythTV Official Wiki
Jump to: navigation, search
m (Categorized)
m (Database tables)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= MythTV database =
+
MythTV uses a [http://www.mysql.com/ MySQL] relational database to manage almost all aspects of configuration and day-to-day operation. [[Mythfrontend]], [[mythbackend]], [[mythfilldatabase]], [[:Category:Plugins|MythTV plugins]] and ancillary programs all interact with the database and use it to store settings and information.
  
MythTV uses a [http://www.mysql.com/ MySQL] relational database to manage almost all aspects of configuration and day-to-day operation. [[Mythfrontend]], [[mythbackend]], [[mythfilldatabase]], [[:Category:Plugins|MythTV plugins]] and ancillary programs all interact with the database and use it to store settings and information.
+
By default, the database is named [[Database Schema|mythconverg]] and contains a set of [[:Category:DB Table|tables]] that interact with one-another. When running multiple frontends and/or backends, only one database is required.
 +
 
 +
==Database tables==
 +
In 0.26 there are 103 tables in the database. The incomplete schema below gives some information about what each table is for and some of the key fields.
 +
 
 +
Information on the 0.27 database schema generated by [http://en.wikipedia.org/wiki/Doxygen Doxygen] is available [http://code.mythtv.org/doxygen/group__db__schema.html here] on the MythTV code development site.
  
By default, the database is named [[Database Schema|mythconverg]] and contains a set of [[:Category:DB Table|tables]] that interact with one-another.
+
{|
 +
| align="center" style="background:#f0f0f0;"|'''Table name'''
 +
| align="center" style="background:#f0f0f0;"|'''Purpose'''
 +
| align="center" style="background:#f0f0f0;"|'''Doxygen docs'''
 +
| align="center" style="background:#f0f0f0;"|'''Fields'''
 +
| align="center" style="background:#f0f0f0;"|'''Key relationship fields'''
 +
| align="center" style="background:#f0f0f0;"|'''Other notable fields'''
 +
|-
 +
| [[archiveitems table|archiveitems]]||||||||||
 +
|-
 +
| [[callsignnetworkmap table|callsignnetworkmap]]||||||||||
 +
|-
 +
| [[capturecard table|capturecard]]||Attributes of capture card||[http://code.mythtv.org/doxygen/group__db__schema.html#capturecard_table]||26||cardid*,diseqid||videodevice,audiodevice,cardtype
 +
|-
 +
| [[cardinput table|cardinput]]||||||||||
 +
|-
 +
| [[channel table|channel]]||||[http://code.mythtv.org/doxygen/group__db__schema.html#channel_table]||28||channelid*, freqid, sourceid, xmltvid, mplexid, iptvid||name, channelnum, icon, recpriority, contrast
 +
|-
 +
| [[channelgroup table|channelgroup]]||||||3||id*, chanid, grpid||
 +
|-
 +
| [[channelgroupnames table|channelgroupnames]]||||||2||grpid*||
 +
|-
 +
| [[channelscan table|channelscan]]||||||5||scanid*,cardid,sourceid||processed, scandate
 +
|-
 +
| [[channelscan_channel table|channelscan_channel]]||||||38||transportid,scanid,mplex_id,source_id,service_id, xmltvid||freqid, service_name, chan_num
 +
|-
 +
| [[channelscan_dtv_multiplex table|channelscan_dtv_multiplex]]||||||||||
 +
|-
 +
| [[codecparams table|codecparams]]||||||||||
 +
|-
 +
| [[credits table|credits]]||||||||||
 +
|-
 +
| [[customexample table|customexample]]||||||||||
 +
|-
 +
| [[diseqc_config table|diseqc_config]]||||||||||
 +
|-
 +
| [[diseqc_tree table|diseqc_tree]]||||||||||
 +
|-
 +
| [[displayprofilegroups table|displayprofilegroups]]||||||||||
 +
|-
 +
| [[displayprofiles table|displayprofiles]]||||||||||
 +
|-
 +
| [[dtv_multiplex table|dtv_multiplex]]||Information needed to tune to a particular frequency on a particular input||[http://code.mythtv.org/doxygen/group__db__schema.html#dtv_multiplex_table]||24||mplexid*,sourceid,transportid,networkid||frequency, polarity, modulation
 +
|-
 +
| [[dtv_privatetypes table|dtv_privatetypes]]||Free form data pertaining to DVB services, it is like a settings table for DVB.||[http://code.mythtv.org/doxygen/group__db__schema.html#dtv_privatetypes_table]||4||networkid||sitype,private_type,private_value
 +
|-
 +
| [[dvdbookmark table|dvdbookmark]]||||||||||
 +
|-
 +
| [[dvdinput table|dvdinput]]||||||||||
 +
|-
 +
| [[dvdtranscode table|dvdtranscode]]||||||||||
 +
|-
 +
| [[eit_cache table|eit_cache]]||||||||||
 +
|-
 +
| [[filemarkup table|filemarkup]]||||||||||
 +
|-
 +
| [[gallerymetadata table|gallerymetadata]]||||||||||
 +
|-
 +
| [[gamemetadata table|gamemetadata]]||||||||||
 +
|-
 +
| [[gameplayers table|gameplayers]]||||||||||
 +
|-
 +
| [[housekeeping table|housekeeping]]||||||||||
 +
|-
 +
| [[inputgroup table|inputgroup]]||||||||||
 +
|-
 +
| [[internetcontent table|internetcontent]]||||||||||
 +
|-
 +
| [[internetcontentarticles table|internetcontentarticles]]||||||||||
 +
|-
 +
| [[inuseprograms table|inuseprograms]]||||||||||
 +
|-
 +
| [[iptv_channel table|iptv_channel]]||||||||||
 +
|-
 +
| [[jobqueue table|jobqueue]]||||||||||
 +
|-
 +
| [[jumppoints table|jumppoints]]||||||||||
 +
|-
 +
| [[keybindings table|keybindings]]||||||||||
 +
|-
 +
| [[keyword table|keyword]]||||||||||
 +
|-
 +
| [[livestream table|livestream]]||||||||||
 +
|-
 +
| [[logging table|logging]]||||||||||
 +
|-
 +
| [[music_albumart table|music_albumart]]||||||||||
 +
|-
 +
| [[music_albums table|music_albums]]||||||||||
 +
|-
 +
| [[music_artists table|music_artists]]||||||||||
 +
|-
 +
| [[music_directories table|music_directories]]||||||||||
 +
|-
 +
| [[music_genres table|music_genres]]||||||||||
 +
|-
 +
| [[music_playlists table|music_playlists]]||||||||||
 +
|-
 +
| [[music_smartplaylists table|music_smartplaylists]]||||||||||
 +
|-
 +
| [[music_smartplaylist_categories table|music_smartplaylist_categories]]||||||||||
 +
|-
 +
| [[music_smartplaylist_items table|music_smartplaylist_items]]||||||||||
 +
|-
 +
| [[music_songs table|music_songs]]||||||||||
 +
|-
 +
| [[music_stats table|music_stats]]||||||||||
 +
|-
 +
| [[mythlog table|mythlog]]||||||||||
 +
|-
 +
| [[networkiconmap table|networkiconmap]]||||||||||
 +
|-
 +
| [[newssites table|newssites]]||||||||||
 +
|-
 +
| [[oldfind table|oldfind]]||||[http://code.mythtv.org/doxygen/group__db__schema.html#oldfind_table]||||||
 +
|-
 +
| [[oldprogram table|oldprogram]]||||||||||
 +
|-
 +
| [[oldrecorded table|oldrecorded]]||||[http://code.mythtv.org/doxygen/group__db__schema.html#oldrecorded_table]||||||
 +
|-
 +
| [[people table|people]]||||||||||
 +
|-
 +
| [[pidcache table|pidcache]]||||||||||
 +
|-
 +
| [[playgroup table|playgroup]]||||||||||
 +
|-
 +
| [[powerpriority table|powerpriority]]||||||||||
 +
|-
 +
| [[profilegroups table|profilegroups]]||||||||||
 +
|-
 +
| [[program table|program]]||||[http://code.mythtv.org/doxygen/group__db__schema.html#program_table]||||||
 +
|-
 +
| [[programgenres table|programgenres]]||||||||||
 +
|-
 +
| [[programrating table|programrating]]||||||||||
 +
|-
 +
| [[recgrouppassword table|recgrouppassword]]||||||||||
 +
|-
 +
| [[record table|record]]||||||||||
 +
|-
 +
| [[recorded table|recorded]]||||[http://code.mythtv.org/doxygen/group__db__schema.html#recorded_table]||||||
 +
|-
 +
| [[recordedartwork table|recordedartwork]]||||||||||
 +
|-
 +
| [[recordedcredits table|recordedcredits]]||||||||||
 +
|-
 +
| [[recordedfile table|recordedfile]]||||||||||
 +
|-
 +
| [[recordedmarkup table|recordedmarkup]]||||||||||
 +
|-
 +
| [[recordedprogram table|recordedprogram]]||||||||||
 +
|-
 +
| [[recordedrating table|recordedrating]]||||||||||
 +
|-
 +
| [[recordedseek table|recordedseek]]||||||||||
 +
|-
 +
| [[recordfilter table|recordfilter]]||||||||||
 +
|-
 +
| [[recordingprofiles table|recordingprofiles]]||||||||||
 +
|-
 +
| [[recordmatch table|recordmatch]]||||||||||
 +
|-
 +
| [[romdb table|romdb]]||||||||||
 +
|-
 +
| [[scannerfile table|scannerfile]]||||||||||
 +
|-
 +
| [[scannerpath table|scannerpath]]||||||||||
 +
|-
 +
| [[schemalock table|schemalock]]||||||||||
 +
|-
 +
| [[settings table|settings]]||||||||||
 +
|-
 +
| [[storagegroup table|storagegroup]]||||||||||
 +
|-
 +
| [[tvchain table|tvchain]]||||||||||
 +
|-
 +
| [[tvosdmenu table|tvosdmenu]]||||||||||
 +
|-
 +
| [[upnpmedia table|upnpmedia]]||||||||||
 +
|-
 +
| [[videocast table|videocast]]||||||||||
 +
|-
 +
| [[videocategory table|videocategory]]||||||||||
 +
|-
 +
| [[videocollection table|videocollection]]||||||||||
 +
|-
 +
| [[videocountry table|videocountry]]||||||||||
 +
|-
 +
| [[videogenre table|videogenre]]||||||||||
 +
|-
 +
| [[videometadata table|videometadata]]||||||||||
 +
|-
 +
| [[videometadatacast table|videometadatacast]]||||||||||
 +
|-
 +
| [[videometadatacountry table|videometadatacountry]]||||||||||
 +
|-
 +
| [[videometadatagenre table|videometadatagenre]]||||||||||
 +
|-
 +
| [[videopart table|videopart]]||||||||||
 +
|-
 +
| [[videopathinfo table|videopathinfo]]||||||||||
 +
|-
 +
| [[videosource table|videosource]]||This table tells us about a particular input on a video capture card.||[http://code.mythtv.org/doxygen/group__db__schema.html#videosource_table]||||||
 +
|-
 +
| [[videotypes table|videotypes]]||||||||||
 +
|-
 +
| [[weatherdatalayout table|weatherdatalayout]]||||||||||
 +
|-
 +
| [[weatherscreens table|weatherscreens]]||||||||||
 +
|-
 +
| [[weathersourcesettings table|weathersourcesettings]]||||||||||
 +
|-
 +
| [[websites table|websites]]||||||||||
 +
|}
  
 
==Command line interface==
 
==Command line interface==
 
+
Use the <code>mysql</code> command on the host running the database:
Use the mysql command on the host running the database:
 
  
 
  % mysql -u mythtv -pmythtv mythconverg
 
  % mysql -u mythtv -pmythtv mythconverg
Line 13: Line 230:
 
SQL commands can be issued at the '''mysql>''' prompt.
 
SQL commands can be issued at the '''mysql>''' prompt.
  
==Web Interface==
+
==Graphical interface==
  
Try installing [http://www.phpmyadmin.net phpMyAdmin].
+
Try installing [http://www.phpmyadmin.net phpMyAdmin], which can administrate MySQL databases via a browser.
  
 
[[Category:Glossary]]
 
[[Category:Glossary]]

Latest revision as of 15:04, 14 February 2013

MythTV uses a MySQL relational database to manage almost all aspects of configuration and day-to-day operation. Mythfrontend, mythbackend, mythfilldatabase, MythTV plugins and ancillary programs all interact with the database and use it to store settings and information.

By default, the database is named mythconverg and contains a set of tables that interact with one-another. When running multiple frontends and/or backends, only one database is required.

Database tables

In 0.26 there are 103 tables in the database. The incomplete schema below gives some information about what each table is for and some of the key fields.

Information on the 0.27 database schema generated by Doxygen is available here on the MythTV code development site.

Table name Purpose Doxygen docs Fields Key relationship fields Other notable fields
archiveitems
callsignnetworkmap
capturecard Attributes of capture card [1] 26 cardid*,diseqid videodevice,audiodevice,cardtype
cardinput
channel [2] 28 channelid*, freqid, sourceid, xmltvid, mplexid, iptvid name, channelnum, icon, recpriority, contrast
channelgroup 3 id*, chanid, grpid
channelgroupnames 2 grpid*
channelscan 5 scanid*,cardid,sourceid processed, scandate
channelscan_channel 38 transportid,scanid,mplex_id,source_id,service_id, xmltvid freqid, service_name, chan_num
channelscan_dtv_multiplex
codecparams
credits
customexample
diseqc_config
diseqc_tree
displayprofilegroups
displayprofiles
dtv_multiplex Information needed to tune to a particular frequency on a particular input [3] 24 mplexid*,sourceid,transportid,networkid frequency, polarity, modulation
dtv_privatetypes Free form data pertaining to DVB services, it is like a settings table for DVB. [4] 4 networkid sitype,private_type,private_value
dvdbookmark
dvdinput
dvdtranscode
eit_cache
filemarkup
gallerymetadata
gamemetadata
gameplayers
housekeeping
inputgroup
internetcontent
internetcontentarticles
inuseprograms
iptv_channel
jobqueue
jumppoints
keybindings
keyword
livestream
logging
music_albumart
music_albums
music_artists
music_directories
music_genres
music_playlists
music_smartplaylists
music_smartplaylist_categories
music_smartplaylist_items
music_songs
music_stats
mythlog
networkiconmap
newssites
oldfind [5]
oldprogram
oldrecorded [6]
people
pidcache
playgroup
powerpriority
profilegroups
program [7]
programgenres
programrating
recgrouppassword
record
recorded [8]
recordedartwork
recordedcredits
recordedfile
recordedmarkup
recordedprogram
recordedrating
recordedseek
recordfilter
recordingprofiles
recordmatch
romdb
scannerfile
scannerpath
schemalock
settings
storagegroup
tvchain
tvosdmenu
upnpmedia
videocast
videocategory
videocollection
videocountry
videogenre
videometadata
videometadatacast
videometadatacountry
videometadatagenre
videopart
videopathinfo
videosource This table tells us about a particular input on a video capture card. [9]
videotypes
weatherdatalayout
weatherscreens
weathersourcesettings
websites

Command line interface

Use the mysql command on the host running the database:

% mysql -u mythtv -pmythtv mythconverg

SQL commands can be issued at the mysql> prompt.

Graphical interface

Try installing phpMyAdmin, which can administrate MySQL databases via a browser.