Handbuch:revision-Tabelle
↑ Handbuch:Inhaltsübersicht | MediaWiki-Datenbank-Layout | revision-Tabelle |
MediaWiki Version: | ≥ 1.5 |
Die revision-Tabelle enthält Metadaten für jede Bearbeitung, die an einer Seite innerhalb des Wikis vorgenommen wurde. Jede Bearbeitung einer Seite erzeugt eine Revisionszeile, die Informationen wie den Benutzer, der die Bearbeitung vorgenommen hat, die Zeit, zu der die Bearbeitung erfolgte, und einen Verweis auf den neuen Wikitext in der comment -Tabelle enthält. The slots that were edited and their corresponding revision are specified in the slots table.
An Import of the last revision of a page from another wiki produces two entries in the revision
table, one with the date and wikitext of the imported revision, and one with the import date.
If a page with the same name already existed, then the wikitext of the latter, which becomes that of the current page, is that of the more recent of the two pages.
The revision
table is very similar to the recentchanges table.
The revision
table is used for page history and user contributions listings.
The recentchanges table is used for recent changes , related changes , watchlists , and, in the case of page creation, for the list of new pages .
Differences include:
- The
recentchanges
table also records logged events such as page moves and deletions
- Items in the
recentchanges
table are periodically purged; those in therevision
table are retained permanently, unless the page is deleted or the site owner runs the deleteOldRevisions.php maintenance script.
- as said, import of a page revision not only adds an entry to the
revision
table with the import date, but also one with the original date.
Deleted revisions are moved to the archive table.
The revision
table and the text
table were introduced in MediaWiki 1.5 to supersede the cur table.
Felder
rev_id
MediaWiki Version: | ≥ 1.5 |
Dieses Feld enthält den Primärschlüssel für jede Revision.
page_latest is a foreign key to this field.
The rev_id
numbers have been preserved across deletion/undeletion since the table's inception in MediaWiki 1.5, when rev_id
and text_id
superseded the old cur_id
.
Note that while rev_id
almost always increases monotonically for successive revisions of a page, this is not strictly guaranteed as importing from another wiki can cause revisions to be created out of order.
rev_page
MediaWiki Version: | ≥ 1.5 |
This field holds a reference to the page to which this revision pertains.
The number in this field is equal to the page_id field of said page.
This should never be invalid; if it is, that revision won't show up in the page history.
If page.page_latest links to a revision with an invalid rev_page
, this will cause the "The revision #0 of the page named 'Foo' does not exist" error.
(similar issue might occur when slots and content are missing for the revision)
rev_text_id
MediaWiki Versions: | 1.5 – 1.34 |
This is a foreign key to old_id in the text table.
(The text
table is where the actual bulk text is stored.)
It's possible for multiple revisions to use the same text - for instance, revisions where only metadata is altered, or where a rollback is done to a previous version.
(veraltet in 1.31)
If rows in the slots table with slots.slot_revision_id = rev_id exist, this field should be ignored (and may be 0) in favor of the corresponding data from the slots
and content
tables.
(entfernt in 1.35)
This column was replaced by content.content_address which can be retrieved by getting the slot_content_id for the corresponding revision in the slots
table.
rev_comment
MediaWiki Versions: | 1.5 – 1.34 |
This field holds an editor's edit summary (editor's comment on revision). This text is shown in the history and contributions. (The recentchanges table contains a copy used for recent changes , related changes , watchlists , and, in the case of page creation, for the list of new pages .) It is rendered in a sanitized subset of wiki markup.
(veraltet)
revcomment_comment_id of the revision_comment_temp
table and the comment table should be used instead!
(entfernt in 1.35) This column was replaced by revision.rev_comment_id, which references comment.comment_id.
rev_comment_id
MediaWiki Version: | ≥ 1.35 |
This is a foreign key to comment_id in the comment table.
In MediaWiki 1.38 and older, if this field contains zero in each record, the comment id must be retrieved from the revision_comment_temp table. See Actor-Migration .
rev_user
MediaWiki Versions: | 1.5 – 1.34 |
This is equal to the user_id of the user who made this edit. The value for this field is 0 for anonymous edits, initializations scripts, and for some mass imports.
Note, there are bugs: T112384.
(veraltet in 1.31)
While actor migration is being done, and depending on the configuration setting $wgActorTableSchemaMigrationStage
, this field may be empty and the actor performing the edit can be stored in the rev_actor field or the revision_actor_temp table instead.
(entfernt in 1.35) This column was removed along with revision.rev_user_text. This column is replaced by revision.rev_actor, which references actor.actor_id.
rev_user_text
MediaWiki Versions: | 1.5 – 1.34 |
This field holds the text of the editor's username , or the IP address of the editor if the revision was done by an unregistered user.
In anonymous revisions imported from UseModWiki or early incarnations of the Phase II software, this field may contain an IP address with the final octet obscured (i.e. \d{1,3}\.\d{1,3}\.\d{1,3}\.xxx
such as 24.150.61.xxx; see T5631).
Some edits imported from UseModWiki may contain a Reverse DNS lookup hostname like ppfree165-153-bz.aknet.it
or office.bomis.com
.
(veraltet in 1.31) While actor migration is being done, and depending on the configuration setting $wgActorTableSchemaMigrationStage
, this field may be empty and the actor performing the edit can be stored in the rev_actor field or the revision_actor_temp table instead.
(entfernt in 1.35) This column was removed along with revision.rev_user. This column is replaced by revision.rev_actor, which references actor.actor_id.
rev_actor
MediaWiki Version: | ≥ 1.35 |
This is a foreign key to actor_id in the actor table. In MediaWiki 1.38 and older versions, if this field contains zero in each record, the actor ID must be retrieved from the revision_actor_temp table. Siehe Actor-Migration .
rev_timestamp
MediaWiki Version: | ≥ 1.5 |
Holds the timestamp of the edit.
Looks like, for example, 20080326231614
(MW_TS time format).
Corresponds to recentchanges.rc_timestamp (and logging.log_timestamp for page creations).
Unlike image.img_timestamp, this value is not fudged to be unique for a given page, so edits happening in quick succession can have the same timestamp.
rev_minor_edit
MediaWiki Version: | ≥ 1.5 |
Records whether the user marked the 'minor edit' checkbox. If the value for this field is 1, then the edit was declared as 'minor'; it is 0 otherwise. Many automated edits are marked as minor.
rev_deleted
MediaWiki Version: | ≥ 1.5 |
Dieses Feld ist für das RevisionDelete -System reserviert.
Es ist ein Bitfeld, in dem die Werte DELETED_TEXT = 1, DELETED_COMMENT = 2, DELETED_USER = 4 und DELETED_RESTRICTED = 8 sind.
So, for example, if nothing has been deleted from that revision, then the value is 0; if both the comment and user have been deleted, then the value is 6.
DELETED_RESTRICTED
indicates suppression; when this flag is set content hidden by the other DELETED_*
flags is only visible to suppressors (i.e. oversighters) instead of admins.
rev_len
MediaWiki Version: | ≥ 1.10 |
This field contains the length of the article after the revision, in bytes. Wird in der Seitenhistorie verwendet. Die ID entspricht rc_new_len .
rev_parent_id
MediaWiki Version: | ≥ 1.10 |
Die rev_id der vorherigen Revision einer Seite.
Dies entspricht rc_last_oldid .
Bei Bearbeitungen an einer neuen Seite ist rev_parent_id
= 0.
Verwendung
Dieses Feld wird verwendet, um eine Baumstruktur zu unterstützen. Dieses Feld wird beispielsweise verwendet, um den Unterschied in der Größe zwischen einer bestimmten Revision und der vorherigen Revision in einer Ansicht der Seitenhistorie zu berechnen. If a parent ID points to a revision that's associated with a different page, MediaWiki will still use that parent revision as a basis of comparison for purposes of calculating size difference. If a revision is deleted from the database, and another revision's parent ID still points to it, then MediaWiki will behave the same as if there were no parent revision; i.e. it will assume the previous size was 0.
Übertragene Revisionen
Wenn Revisionen von einem anderen Wiki importiert werden, wird die übergeordnete ID-Baumstruktur der übertragenen Revisionen aus dem Quell-Wiki beibehalten (dies wird von jeder Revision, mit Ausnahme der Schlussrevision, durch ein <parentid>
XML-Element implementiert, das zum Auffüllen von rev_parent_id verwendet wird), und die übergeordneten IDs der Revisionen des Ziel-Wikis werden nicht aktualisiert.
Ebenso werden beim Zusammenführen von Seitenhistorien die Eltern-IDs der Revisionen von Quell- und Zielseite nicht aktualisiert.
populateParentId.php can be used to populate rev_parent_id
based on revision timestamps and revision IDs.
In the case of an edit conflict, the revision ID of the edit that is saved first (causing the conflict) will be used as the parent ID of the edit that is saved second (after resolving the conflict).
rev_sha1
MediaWiki Version: | ≥ 1.19 |
This field is used to add the SHA-1 text content hash in base-36 (generated by Wikimedia\base_convert()
.)
Since 1.32, it's a nested hash of hashes of content_sha1 across all slots of the revision.
If the revision only has one slot, the values of the rev_sha1
and content_sha1
fields are identical.
The nested hash algorithm is implemented in RevisionSlots::computeSha1()
.
It can be outlined as:
rev_sha1 = hash_n; hash_n = sha1( hash_n-1, content_sha1_n ); hash_1 = content_sha1_1;
rev_content_model
MediaWiki Versions: | 1.21 – 1.34 |
Content model, see CONTENT_MODEL_XXX
constants in Defines.php .
These IDs will be exposed in the API and XML dumps.
Extensions that define their own content model IDs should take care to avoid conflicts.
Using the extension name as a prefix is recommended, for example 'myextension-somecontent'.
Mögliche Werte sind z.B.: 'wikitext', 'javascript', 'css', 'text', and 'json'
(veraltet in 1.31)
If rows in the slots
table with slot_revision_id = rev_id this field should be ignored (and may be NULL) in favor of the corresponding data from the slots
and content
tables.
(entfernt in 1.35) This column was replaced by content.content_model, which references content_models.model_id.
rev_content_format
MediaWiki Versions: | 1.21 – 1.34 |
Content format, see CONTENT_FORMAT_XXX
constants in Defines.php .
These should be MIME types, and will be exposed in the API and XML dumps.
Extensions are free to use the below formats, or define their own.
It is recommended to stick with the conventions for MIME types.
Mögliche Werte sind z.B.: 'text/x-wiki', 'text/javascript', 'text/css', 'text/plain', 'text/html', 'application/vnd.php.serialized', 'application/json', 'application/xml'
(veraltet in 1.31)
If rows in the slots
table with slot_revision_id = rev_id exist, this field should be ignored (and may be NULL).
(entfernt in 1.35)
This column was removed. The ContentHandler class is able to automatically detect the content format, and replaces this column.
Schematische Übersicht
MediaWiki Version: | ≥ 1.43 |
DESCRIBE revision;
+----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | rev_id | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(10) unsigned | NO | MUL | NULL | | | rev_comment_id | bigint(20) unsigned | NO | | NULL | | | rev_actor | bigint(20) unsigned | NO | MUL | NULL | | | rev_timestamp | binary(14) | NO | MUL | NULL | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | bigint(20) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | | | +----------------+---------------------+------+-----+---------+----------------+
MediaWiki Versions: | 1.37 – 1.42 Gerrit change 5954 |
DESCRIBE revision;
+----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(10) unsigned | NO | MUL | NULL | | | rev_comment_id | bigint(20) unsigned | NO | | 0 | | | rev_actor | bigint(20) unsigned | NO | MUL | 0 | | | rev_timestamp | binary(14) | NO | MUL | NULL | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | | | +----------------+---------------------+------+-----+---------+----------------+
MediaWiki Versions: | 1.35 – 1.36 |
DESCRIBE revision;
+----------------+---------------------+------+-----+----------------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+----------------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(10) unsigned | NO | MUL | NULL | | | rev_comment_id | bigint(20) unsigned | NO | | 0 | | | rev_actor | bigint(20) unsigned | NO | MUL | 0 | | | rev_timestamp | binary(14) | NO | MUL | | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | | | +----------------+---------------------+------+-----+----------------+----------------+
MediaWiki Versions: | 1.31 – 1.34 |
DESCRIBE revision;
+--------------------+---------------------+------+-----+----------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+---------------------+------+-----+----------------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(10) unsigned | NO | MUL | NULL | | | rev_text_id | int(10) unsigned | NO | | 0 | | | rev_comment | varbinary(767) | NO | | | | | rev_user | int(10) unsigned | NO | MUL | 0 | | | rev_user_text | varbinary(255) | NO | MUL | | | | rev_timestamp | binary(14) | NO | MUL | | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | | | | rev_content_model | varbinary(32) | YES | | NULL | | | rev_content_format | varbinary(64) | YES | | NULL | | +--------------------+---------------------+------+-----+----------------+----------------+
MediaWiki Version: | 1.30 |
DESCRIBE revision;
+--------------------+---------------------+------+-----+----------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+---------------------+------+-----+----------------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(10) unsigned | NO | MUL | NULL | | | rev_text_id | int(10) unsigned | NO | | NULL | | | rev_comment | varbinary(767) | NO | | | | | rev_user | int(10) unsigned | NO | MUL | 0 | | | rev_user_text | varbinary(255) | NO | MUL | | | | rev_timestamp | binary(14) | NO | MUL | | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | | | | rev_content_model | varbinary(32) | YES | | NULL | | | rev_content_format | varbinary(64) | YES | | NULL | | +--------------------+---------------------+------+-----+----------------+----------------+
MediaWiki Versions: | 1.25 – 1.29 |
DESCRIBE revision;
+--------------------+---------------------+------+-----+----------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+---------------------+------+-----+----------------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(10) unsigned | NO | MUL | NULL | | | rev_text_id | int(10) unsigned | NO | | NULL | | | rev_comment | varbinary(767) | NO | | NULL | | | rev_user | int(10) unsigned | NO | MUL | 0 | | | rev_user_text | varbinary(255) | NO | MUL | | | | rev_timestamp | binary(14) | NO | MUL | | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | | | | rev_content_model | varbinary(32) | YES | | NULL | | | rev_content_format | varbinary(64) | YES | | NULL | | +--------------------+---------------------+------+-----+----------------+----------------+
MediaWiki Versions: | 1.21 – 1.24 |
DESCRIBE revision;
+--------------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+---------------------+------+-----+---------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | AUTO_INCREMENT | | rev_page | int(10) unsigned | NO | PRI | NULL | | | rev_text_id | int(10) unsigned | NO | | NULL | | | rev_comment | tinyblob | NO | | NULL | | | rev_user | int(10) unsigned | NO | MUL | 0 | | | rev_user_text | varchar(255) binary | NO | MUL | NULL | | | rev_timestamp | binary(14) | NO | MUL | NULL | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | NULL | | | rev_content_model | varbinary(32) | YES | | NULL | | | rev_content_format | varbinary(64) | YES | | NULL | | +--------------------+---------------------+------+-----+---------+----------------+
MediaWiki Versions: | 1.19 – 1.20 |
DESCRIBE revision;
+----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | AUTO_INCREMENT | | rev_page | int(10) unsigned | NO | PRI | NULL | | | rev_text_id | int(10) unsigned | NO | | NULL | | | rev_comment | tinyblob | NO | | NULL | | | rev_user | int(10) unsigned | NO | MUL | 0 | | | rev_user_text | varchar(255) binary | NO | MUL | NULL | | | rev_timestamp | binary(14) | NO | MUL | NULL | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | NULL | | +----------------+---------------------+------+-----+---------+----------------+
MediaWiki Versions: | 1.9 – 1.18 |
DESCRIBE revision;
+----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | AUTO_INCREMENT | | rev_page | int(10) unsigned | NO | PRI | NULL | | | rev_text_id | int(10) unsigned | NO | | NULL | | | rev_comment | tinyblob | NO | | NULL | | | rev_user | int(10) unsigned | NO | MUL | 0 | | | rev_user_text | varchar(255) binary | NO | MUL | NULL | | | rev_timestamp | binary(14) | NO | MUL | NULL | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | +----------------+---------------------+------+-----+---------+----------------+
MediaWiki Versions: | 1.5 – 1.8 |
DESCRIBE revision;
+----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | rev_id | int(8) unsigned | NO | PRI | NULL | AUTO_INCREMENT | | rev_page | int(8) unsigned | NO | PRI | NULL | | | rev_text_id | int(8) unsigned | NO | | NULL | | | rev_comment | tinyblob | NO | | NULL | | | rev_user | int(5) unsigned | NO | MUL | 0 | | | rev_user_text | varchar(255) binary | NO | MUL | NULL | | | rev_timestamp | char(14) binary | NO | MUL | NULL | | | rev_minor_edit | tinyint(1) unsigned | NO | | 0 | | | rev_deleted | tinyint(1) unsigned | NO | | 0 | | +----------------+---------------------+------+-----+---------+----------------+
Indexe
MediaWiki Version: | ≥ 1.38 |
SHOW INDEX IN revision;
+----------+------------+--------------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +----------+------------+--------------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | revision | 0 | PRIMARY | 1 | rev_id | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_timestamp | 1 | rev_timestamp | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_page_timestamp | 1 | rev_page | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_page_timestamp | 2 | rev_timestamp | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_actor_timestamp | 1 | rev_actor | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_actor_timestamp | 2 | rev_timestamp | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_actor_timestamp | 3 | rev_id | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_page_actor_timestamp | 1 | rev_page | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_page_actor_timestamp | 2 | rev_actor | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_page_actor_timestamp | 3 | rev_timestamp | A | 0 | NULL | NULL | | BTREE | | | +----------+------------+--------------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+---------------+