Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Fedora uses several database tables and indexes to provide fast retrieval of some information. This page will document documents the various tables Fedora creates. Because of Due to differences in databases, some datatypes might not match the implemented type in your database exactly (ie. datetime versus timestamp).

When a Fedora repository is started with an empty database it begins a reindex an indexing process to recreate create these indexes from the content on disk. You can force this rebuild to occur the rebuilding of these internal indexes by setting the fcrepo.rebuild.on.start JVM property to true. For more information again visit the Properties page.

Info

For

...

the full list of database properties, please refer to the Database section

...

of the Properties

...

documentation.

You can find additional information on this wiki about how Fedora rebuilds these caches and configuring supported databases.

Technical Information

...

Containment Index

...

FieldTypeConstraintsDescription
fedora_idvarchar(503)NOT NULL, PRIMARY KEYThe internal ID of the resourceresource 
parentvarchar(503)NOT NULLThe internal ID of the containing resource
start_timedatetimeNOT NULLThe datetime when the resource was created
end_timedatetime
The datetime when the resource was deleted (but still has a tombstone)
updateddatetime
The datetime when any contained resources were updated (used for eTags)

...

FieldTypeConstraintsDescription

subject_id

varchar(503)NOT NULLThe internal ID of the resource initiating the relationship (ie. the subject)
propertyvarchar(503)NOT NULLThe predicate of the relationship
object_idvarchar(503)NOT NULLThe internal ID of the resource which is the target of the relationship (ie. the object)
source_idvarchar(503)NOT NULLThe internal ID of the direct or indirect container containing the resource that created the relationship.
proxy_idvarchar(503)NOT NULLThe internal ID of the resource that created the relationship. This is contained within the source_id
start_timedatetime
The datetime the relationship started.
end_timedatetime
The datetime the relationship ended.
last_updateddatetime
The datetime the relationship was last updated. (used for eTags)
tx_idvarchar(36)NOT NULLThe transaction id this record belongs to
operationvarchar(10)NOT NULLThe type of operation this is, one of 'add' or 'delete'
force_flagvarchar(10)??? (seems to always be NULL)
Indicates that a 'delete' operation should purge an entry from the membership index completely, rather than assigning it and end_time. Used for on-demand versioning when the membership relation existed because of uncommitted state in a mutable head.

...

Inbound Reference Index

The inbound reference tables hold relationships between two resources in the repository, due to there being no single subject restriction it is possible for a 3rd resource to generate an inbound reference from a 1st resource to a 2nd resource. This relationship will persist even if the 2nd resource was deleted.

...