Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.93 KB | None | 0 0
  1. CREATE TABLE schema_version(
  2. Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, -- Makes sure this table only has one row.
  3. version INTEGER NOT NULL,
  4. upgraded BOOL NOT NULL, -- Whether we reached this version from an upgrade or an initial schema.
  5. CHECK (Lock='X')
  6. );
  7. CREATE TABLE applied_schema_deltas(
  8. version INTEGER NOT NULL,
  9. file TEXT NOT NULL,
  10. UNIQUE(version, file)
  11. );
  12. CREATE TABLE application_services( id BIGINT PRIMARY KEY, url TEXT, token TEXT, hs_token TEXT, sender TEXT, UNIQUE(token) );
  13. CREATE TABLE application_services_regex( id BIGINT PRIMARY KEY, as_id BIGINT NOT NULL, namespace INTEGER, regex TEXT, FOREIGN KEY(as_id) REFERENCES application_services(id) );
  14. CREATE TABLE application_services_state( as_id TEXT PRIMARY KEY, state VARCHAR(5), last_txn INTEGER );
  15. CREATE TABLE application_services_txns( as_id TEXT NOT NULL, txn_id INTEGER NOT NULL, event_ids TEXT NOT NULL, UNIQUE(as_id, txn_id) );
  16. CREATE INDEX application_services_txns_id ON application_services_txns ( as_id );
  17. CREATE TABLE event_forward_extremities( event_id TEXT NOT NULL, room_id TEXT NOT NULL, UNIQUE (event_id, room_id) );
  18. CREATE INDEX ev_extrem_room ON event_forward_extremities(room_id);
  19. CREATE INDEX ev_extrem_id ON event_forward_extremities(event_id);
  20. CREATE TABLE event_backward_extremities( event_id TEXT NOT NULL, room_id TEXT NOT NULL, UNIQUE (event_id, room_id) );
  21. CREATE INDEX ev_b_extrem_room ON event_backward_extremities(room_id);
  22. CREATE INDEX ev_b_extrem_id ON event_backward_extremities(event_id);
  23. CREATE TABLE event_edges( event_id TEXT NOT NULL, prev_event_id TEXT NOT NULL, room_id TEXT NOT NULL, is_state BOOL NOT NULL, UNIQUE (event_id, prev_event_id, room_id, is_state) );
  24. CREATE INDEX ev_edges_id ON event_edges(event_id);
  25. CREATE INDEX ev_edges_prev_id ON event_edges(prev_event_id);
  26. CREATE TABLE room_depth( room_id TEXT NOT NULL, min_depth INTEGER NOT NULL, UNIQUE (room_id) );
  27. CREATE INDEX room_depth_room ON room_depth(room_id);
  28. CREATE TABLE event_destinations( event_id TEXT NOT NULL, destination TEXT NOT NULL, delivered_ts BIGINT DEFAULT 0, UNIQUE (event_id, destination) );
  29. CREATE INDEX event_destinations_id ON event_destinations(event_id);
  30. CREATE TABLE state_forward_extremities( event_id TEXT NOT NULL, room_id TEXT NOT NULL, type TEXT NOT NULL, state_key TEXT NOT NULL, UNIQUE (event_id, room_id) );
  31. CREATE INDEX st_extrem_keys ON state_forward_extremities( room_id, type, state_key );
  32. CREATE INDEX st_extrem_id ON state_forward_extremities(event_id);
  33. CREATE TABLE event_auth( event_id TEXT NOT NULL, auth_id TEXT NOT NULL, room_id TEXT NOT NULL, UNIQUE (event_id, auth_id, room_id) );
  34. CREATE INDEX evauth_edges_id ON event_auth(event_id);
  35. CREATE INDEX evauth_edges_auth_id ON event_auth(auth_id);
  36. CREATE TABLE event_content_hashes ( event_id TEXT, algorithm TEXT, hash bytea, UNIQUE (event_id, algorithm) );
  37. CREATE INDEX event_content_hashes_id ON event_content_hashes(event_id);
  38. CREATE TABLE event_reference_hashes ( event_id TEXT, algorithm TEXT, hash bytea, UNIQUE (event_id, algorithm) );
  39. CREATE INDEX event_reference_hashes_id ON event_reference_hashes(event_id);
  40. CREATE TABLE event_signatures ( event_id TEXT, signature_name TEXT, key_id TEXT, signature bytea, UNIQUE (event_id, signature_name, key_id) );
  41. CREATE INDEX event_signatures_id ON event_signatures(event_id);
  42. CREATE TABLE event_edge_hashes( event_id TEXT, prev_event_id TEXT, algorithm TEXT, hash bytea, UNIQUE (event_id, prev_event_id, algorithm) );
  43. CREATE INDEX event_edge_hashes_id ON event_edge_hashes(event_id);
  44. CREATE TABLE events( stream_ordering INTEGER PRIMARY KEY, topological_ordering BIGINT NOT NULL, event_id TEXT NOT NULL, type TEXT NOT NULL, room_id TEXT NOT NULL, content TEXT NOT NULL, unrecognized_keys TEXT, processed BOOL NOT NULL, outlier BOOL NOT NULL, depth BIGINT DEFAULT 0 NOT NULL, origin_server_ts BIGINT, UNIQUE (event_id) );
  45. CREATE INDEX events_stream_ordering ON events (stream_ordering);
  46. CREATE INDEX events_topological_ordering ON events (topological_ordering);
  47. CREATE INDEX events_order ON events (topological_ordering, stream_ordering);
  48. CREATE INDEX events_room_id ON events (room_id);
  49. CREATE INDEX events_order_room ON events ( room_id, topological_ordering, stream_ordering );
  50. CREATE TABLE event_json( event_id TEXT NOT NULL, room_id TEXT NOT NULL, internal_metadata TEXT NOT NULL, json TEXT NOT NULL, UNIQUE (event_id) );
  51. CREATE INDEX event_json_room_id ON event_json(room_id);
  52. CREATE TABLE state_events( event_id TEXT NOT NULL, room_id TEXT NOT NULL, type TEXT NOT NULL, state_key TEXT NOT NULL, prev_state TEXT, UNIQUE (event_id) );
  53. CREATE INDEX state_events_room_id ON state_events (room_id);
  54. CREATE INDEX state_events_type ON state_events (type);
  55. CREATE INDEX state_events_state_key ON state_events (state_key);
  56. CREATE TABLE current_state_events( event_id TEXT NOT NULL, room_id TEXT NOT NULL, type TEXT NOT NULL, state_key TEXT NOT NULL, UNIQUE (event_id), UNIQUE (room_id, type, state_key) );
  57. CREATE INDEX current_state_events_room_id ON current_state_events (room_id);
  58. CREATE INDEX current_state_events_type ON current_state_events (type);
  59. CREATE INDEX current_state_events_state_key ON current_state_events (state_key);
  60. CREATE TABLE room_memberships( event_id TEXT NOT NULL, user_id TEXT NOT NULL, sender TEXT NOT NULL, room_id TEXT NOT NULL, membership TEXT NOT NULL, forgotten INTEGER DEFAULT 0, UNIQUE (event_id) );
  61. CREATE INDEX room_memberships_room_id ON room_memberships (room_id);
  62. CREATE INDEX room_memberships_user_id ON room_memberships (user_id);
  63. CREATE TABLE feedback( event_id TEXT NOT NULL, feedback_type TEXT, target_event_id TEXT, sender TEXT, room_id TEXT, UNIQUE (event_id) );
  64. CREATE TABLE topics( event_id TEXT NOT NULL, room_id TEXT NOT NULL, topic TEXT NOT NULL, UNIQUE (event_id) );
  65. CREATE INDEX topics_room_id ON topics(room_id);
  66. CREATE TABLE room_names( event_id TEXT NOT NULL, room_id TEXT NOT NULL, name TEXT NOT NULL, UNIQUE (event_id) );
  67. CREATE INDEX room_names_room_id ON room_names(room_id);
  68. CREATE TABLE rooms( room_id TEXT PRIMARY KEY NOT NULL, is_public BOOL, creator TEXT );
  69. CREATE TABLE room_hosts( room_id TEXT NOT NULL, host TEXT NOT NULL, UNIQUE (room_id, host) );
  70. CREATE INDEX room_hosts_room_id ON room_hosts (room_id);
  71. CREATE TABLE server_tls_certificates( server_name TEXT, fingerprint TEXT, from_server TEXT, ts_added_ms BIGINT, tls_certificate bytea, UNIQUE (server_name, fingerprint) );
  72. CREATE TABLE server_signature_keys( server_name TEXT, key_id TEXT, from_server TEXT, ts_added_ms BIGINT, verify_key bytea, UNIQUE (server_name, key_id) );
  73. CREATE TABLE local_media_repository ( media_id TEXT, media_type TEXT, media_length INTEGER, created_ts BIGINT, upload_name TEXT, user_id TEXT, UNIQUE (media_id) );
  74. CREATE TABLE local_media_repository_thumbnails ( media_id TEXT, thumbnail_width INTEGER, thumbnail_height INTEGER, thumbnail_type TEXT, thumbnail_method TEXT, thumbnail_length INTEGER, UNIQUE ( media_id, thumbnail_width, thumbnail_height, thumbnail_type ) );
  75. CREATE INDEX local_media_repository_thumbnails_media_id ON local_media_repository_thumbnails (media_id);
  76. CREATE TABLE remote_media_cache ( media_origin TEXT, media_id TEXT, media_type TEXT, created_ts BIGINT, upload_name TEXT, media_length INTEGER, filesystem_id TEXT, UNIQUE (media_origin, media_id) );
  77. CREATE TABLE remote_media_cache_thumbnails ( media_origin TEXT, media_id TEXT, thumbnail_width INTEGER, thumbnail_height INTEGER, thumbnail_method TEXT, thumbnail_type TEXT, thumbnail_length INTEGER, filesystem_id TEXT, UNIQUE ( media_origin, media_id, thumbnail_width, thumbnail_height, thumbnail_type ) );
  78. CREATE INDEX remote_media_cache_thumbnails_media_id ON remote_media_cache_thumbnails (media_id);
  79. CREATE TABLE presence( user_id TEXT NOT NULL, state VARCHAR(20), status_msg TEXT, mtime BIGINT, UNIQUE (user_id) );
  80. CREATE TABLE presence_allow_inbound( observed_user_id TEXT NOT NULL, observer_user_id TEXT NOT NULL, UNIQUE (observed_user_id, observer_user_id) );
  81. CREATE TABLE presence_list( user_id TEXT NOT NULL, observed_user_id TEXT NOT NULL, accepted BOOLEAN NOT NULL, UNIQUE (user_id, observed_user_id) );
  82. CREATE INDEX presence_list_user_id ON presence_list (user_id);
  83. CREATE TABLE profiles( user_id TEXT NOT NULL, displayname TEXT, avatar_url TEXT, UNIQUE(user_id) );
  84. CREATE TABLE rejections( event_id TEXT NOT NULL, reason TEXT NOT NULL, last_check TEXT NOT NULL, UNIQUE (event_id) );
  85. CREATE TABLE push_rules ( id BIGINT PRIMARY KEY, user_name TEXT NOT NULL, rule_id TEXT NOT NULL, priority_class SMALLINT NOT NULL, priority INTEGER NOT NULL DEFAULT 0, conditions TEXT NOT NULL, actions TEXT NOT NULL, UNIQUE(user_name, rule_id) );
  86. CREATE INDEX push_rules_user_name on push_rules (user_name);
  87. CREATE TABLE user_filters( user_id TEXT, filter_id BIGINT, filter_json bytea );
  88. CREATE INDEX user_filters_by_user_id_filter_id ON user_filters( user_id, filter_id );
  89. CREATE TABLE push_rules_enable ( id BIGINT PRIMARY KEY, user_name TEXT NOT NULL, rule_id TEXT NOT NULL, enabled SMALLINT, UNIQUE(user_name, rule_id) );
  90. CREATE INDEX push_rules_enable_user_name on push_rules_enable (user_name);
  91. CREATE TABLE redactions ( event_id TEXT NOT NULL, redacts TEXT NOT NULL, UNIQUE (event_id) );
  92. CREATE INDEX redactions_event_id ON redactions (event_id);
  93. CREATE INDEX redactions_redacts ON redactions (redacts);
  94. CREATE TABLE room_aliases( room_alias TEXT NOT NULL, room_id TEXT NOT NULL, UNIQUE (room_alias) );
  95. CREATE INDEX room_aliases_id ON room_aliases(room_id);
  96. CREATE TABLE room_alias_servers( room_alias TEXT NOT NULL, server TEXT NOT NULL );
  97. CREATE INDEX room_alias_servers_alias ON room_alias_servers(room_alias);
  98. CREATE TABLE state_groups( id BIGINT PRIMARY KEY, room_id TEXT NOT NULL, event_id TEXT NOT NULL );
  99. CREATE TABLE state_groups_state( state_group BIGINT NOT NULL, room_id TEXT NOT NULL, type TEXT NOT NULL, state_key TEXT NOT NULL, event_id TEXT NOT NULL );
  100. CREATE TABLE event_to_state_groups( event_id TEXT NOT NULL, state_group BIGINT NOT NULL, UNIQUE (event_id) );
  101. CREATE INDEX state_groups_id ON state_groups(id);
  102. CREATE INDEX state_groups_state_id ON state_groups_state(state_group);
  103. CREATE INDEX event_to_state_groups_id ON event_to_state_groups(event_id);
  104. CREATE TABLE received_transactions( transaction_id TEXT, origin TEXT, ts BIGINT, response_code INTEGER, response_json bytea, has_been_referenced smallint default 0, UNIQUE (transaction_id, origin) );
  105. CREATE INDEX transactions_have_ref ON received_transactions(origin, has_been_referenced);
  106. CREATE TABLE sent_transactions( id BIGINT PRIMARY KEY, transaction_id TEXT, destination TEXT, response_code INTEGER DEFAULT 0, response_json TEXT, ts BIGINT );
  107. CREATE INDEX sent_transaction_txn_id ON sent_transactions(transaction_id);
  108. CREATE TABLE transaction_id_to_pdu( transaction_id INTEGER, destination TEXT, pdu_id TEXT, pdu_origin TEXT, UNIQUE (transaction_id, destination) );
  109. CREATE INDEX transaction_id_to_pdu_dest ON transaction_id_to_pdu(destination);
  110. CREATE TABLE destinations( destination TEXT PRIMARY KEY, retry_last_ts BIGINT, retry_interval INTEGER );
  111. CREATE TABLE users( name TEXT, password_hash TEXT, creation_ts BIGINT, admin SMALLINT DEFAULT 0 NOT NULL, UNIQUE(name) );
  112. CREATE TABLE access_tokens( id BIGINT PRIMARY KEY, user_id TEXT NOT NULL, device_id TEXT, token TEXT NOT NULL, last_used BIGINT, UNIQUE(token) );
  113. CREATE TABLE user_ips ( user_id TEXT NOT NULL, access_token TEXT NOT NULL, device_id TEXT, ip TEXT NOT NULL, user_agent TEXT NOT NULL, last_seen BIGINT NOT NULL );
  114. CREATE INDEX user_ips_user_ip ON user_ips(user_id, access_token, ip);
  115. CREATE TABLE "server_keys_json" ( server_name TEXT NOT NULL, key_id TEXT NOT NULL, from_server TEXT NOT NULL, ts_added_ms BIGINT NOT NULL, ts_valid_until_ms BIGINT NOT NULL, key_json bytea NOT NULL, CONSTRAINT server_keys_json_uniqueness UNIQUE (server_name, key_id, from_server) );
  116. CREATE INDEX events_order_topo_stream_room ON events( topological_ordering, stream_ordering, room_id );
  117. CREATE TABLE "pushers" (
  118. id BIGINT PRIMARY KEY,
  119. user_name TEXT NOT NULL,
  120. access_token BIGINT DEFAULT NULL,
  121. profile_tag VARCHAR(32) NOT NULL,
  122. kind VARCHAR(8) NOT NULL,
  123. app_id VARCHAR(64) NOT NULL,
  124. app_display_name VARCHAR(64) NOT NULL,
  125. device_display_name VARCHAR(128) NOT NULL,
  126. pushkey TEXT NOT NULL,
  127. ts BIGINT NOT NULL,
  128. lang VARCHAR(8),
  129. data TEXT,
  130. last_token TEXT,
  131. last_success BIGINT,
  132. failing_since BIGINT,
  133. UNIQUE (app_id, pushkey, user_name)
  134. );
  135. CREATE TABLE e2e_device_keys_json ( user_id TEXT NOT NULL, device_id TEXT NOT NULL, ts_added_ms BIGINT NOT NULL, key_json TEXT NOT NULL, CONSTRAINT e2e_device_keys_json_uniqueness UNIQUE (user_id, device_id) );
  136. CREATE TABLE e2e_one_time_keys_json ( user_id TEXT NOT NULL, device_id TEXT NOT NULL, algorithm TEXT NOT NULL, key_id TEXT NOT NULL, ts_added_ms BIGINT NOT NULL, key_json TEXT NOT NULL, CONSTRAINT e2e_one_time_keys_json_uniqueness UNIQUE (user_id, device_id, algorithm, key_id) );
  137. CREATE TABLE receipts_graph( room_id TEXT NOT NULL, receipt_type TEXT NOT NULL, user_id TEXT NOT NULL, event_ids TEXT NOT NULL, data TEXT NOT NULL, CONSTRAINT receipts_graph_uniqueness UNIQUE (room_id, receipt_type, user_id) );
  138. CREATE TABLE receipts_linearized ( stream_id BIGINT NOT NULL, room_id TEXT NOT NULL, receipt_type TEXT NOT NULL, user_id TEXT NOT NULL, event_id TEXT NOT NULL, data TEXT NOT NULL, CONSTRAINT receipts_linearized_uniqueness UNIQUE (room_id, receipt_type, user_id) );
  139. CREATE INDEX receipts_linearized_id ON receipts_linearized( stream_id );
  140. CREATE INDEX receipts_linearized_room_stream ON receipts_linearized( room_id, stream_id );
  141. CREATE TABLE "user_threepids" ( user_id TEXT NOT NULL, medium TEXT NOT NULL, address TEXT NOT NULL, validated_at BIGINT NOT NULL, added_at BIGINT NOT NULL, CONSTRAINT medium_address UNIQUE (medium, address) );
  142. CREATE INDEX user_threepids_user_id ON user_threepids(user_id);
  143. CREATE TABLE refresh_tokens( id INTEGER PRIMARY KEY, token TEXT NOT NULL, user_id TEXT NOT NULL, UNIQUE (token) );
  144. CREATE TABLE stats_reporting( reported_stream_token INTEGER, reported_time BIGINT );
  145. CREATE TABLE background_updates( update_name TEXT NOT NULL, progress_json TEXT NOT NULL, CONSTRAINT background_updates_uniqueness UNIQUE (update_name) );
  146. CREATE VIRTUAL TABLE event_search USING fts4 ( event_id, room_id, sender, key, value );
  147. CREATE TABLE 'event_search_content'(docid INTEGER PRIMARY KEY, 'c0event_id', 'c1room_id', 'c2sender', 'c3key', 'c4value');
  148. CREATE TABLE 'event_search_segments'(blockid INTEGER PRIMARY KEY, block BLOB);
  149. CREATE TABLE 'event_search_segdir'(level INTEGER,idx INTEGER,start_block INTEGER,leaves_end_block INTEGER,end_block INTEGER,root BLOB,PRIMARY KEY(level, idx));
  150. CREATE TABLE 'event_search_docsize'(docid INTEGER PRIMARY KEY, size BLOB);
  151. CREATE TABLE 'event_search_stat'(id INTEGER PRIMARY KEY, value BLOB);
  152. CREATE TABLE guest_access( event_id TEXT NOT NULL, room_id TEXT NOT NULL, guest_access TEXT NOT NULL, UNIQUE (event_id) );
  153. CREATE TABLE history_visibility( event_id TEXT NOT NULL, room_id TEXT NOT NULL, history_visibility TEXT NOT NULL, UNIQUE (event_id) );
  154. CREATE TABLE room_tags( user_id TEXT NOT NULL, room_id TEXT NOT NULL, tag TEXT NOT NULL, content TEXT NOT NULL, CONSTRAINT room_tag_uniqueness UNIQUE (user_id, room_id, tag) );
  155. CREATE TABLE room_tags_revisions ( user_id TEXT NOT NULL, room_id TEXT NOT NULL, stream_id BIGINT NOT NULL, CONSTRAINT room_tag_revisions_uniqueness UNIQUE (user_id, room_id) );
  156. CREATE TABLE "account_data_max_stream_id"( Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, stream_id BIGINT NOT NULL, CHECK (Lock='X') );
  157. CREATE TABLE account_data( user_id TEXT NOT NULL, account_data_type TEXT NOT NULL, stream_id BIGINT NOT NULL, content TEXT NOT NULL, CONSTRAINT account_data_uniqueness UNIQUE (user_id, account_data_type) );
  158. CREATE TABLE room_account_data( user_id TEXT NOT NULL, room_id TEXT NOT NULL, account_data_type TEXT NOT NULL, stream_id BIGINT NOT NULL, content TEXT NOT NULL, CONSTRAINT room_account_data_uniqueness UNIQUE (user_id, room_id, account_data_type) );
  159. CREATE INDEX account_data_stream_id on account_data(user_id, stream_id);
  160. CREATE INDEX room_account_data_stream_id on room_account_data(user_id, stream_id);
  161. CREATE INDEX events_ts ON events(origin_server_ts, stream_ordering);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement