= Trac Database Schema = The database schema is defined in [source:/trunk/trac/db_default.py trac.db_default], along with the initial contents of the database. The schema includes the tables listed below. == Overview == || '''Table Name''' || '''Purpose''' || || `attachment` || Descriptions of attachments (the files themselves are stored on disk). || || `auth_cookie` || User login cookies. || || `component` || Values that can be used in a ticket's "component" field. The `owner` column is used as the default assignee for new tickets, if not overridden at the time of ticket submission. || || `enum` || Maps integer IDs for issues' priorities, severities, etc. to human-readable names. || || `milestone` || Project milestones. || || `node_change` || 1^st^ half of the repository cache: for every changeset (as identified by the revision number), this table contains the nodes (i.e. files or directories) that have been added/modified/deleted. || || `permission` || Username/action pairs describing who's allowed to do what. This table's contents also hold permission groups. || || `report` || Stores the SQL to generate canned database reports. || || `revision` || 2^nd^ half of the repository cache: changesets, containing the revision number, author, time, and log message. The list of files and directories modified by a changeset can be found by joining with `node_change` on the `rev` column. || || `session` || Last user visit time. || || `session_attribute` || Information about user settings, including name, email, and diff options. || || `system` || System information such as the database version and repository cache metadata || || `ticket` || Tickets. || || `ticket_change` || Changes to tickets, on a field-by-field basis. The field value `comment` is special: it associates a comment with a set of field changes. || || `ticket_custom` || The values of custom ticket fields. || || `version` || As in `component` and `milestone`, this holds the options of the drop-down `version` list on the ticket form. Every version can have a `time` set, although that is not presently used other than for ordering the list of versions in the UI. || || `wiki` || Wiki pages (including old revisions). || {{{ #!div class=important TODO: add 0.12 tables - cache - repository }}} == Database Schema == [[Image(trac-schema-v2.png)]] Note that some of the pictured relations are not "true" relations in the traditional relational meaning. Also, there's no "real" user table. The particular cases are explained in the embedded notes. ''This schema is incomplete, for Trac [milestone:0.12].'' ---- See also: TracDev, TracDev/DatabaseUpgrades