]>
cat aescling's git repositories - mastodon.git/blob - db/schema.rb
1 # This file is auto-generated from the current state of the database. Instead
2 # of editing this file, please use the migrations feature of Active Record to
3 # incrementally modify your database, and then regenerate this schema definition.
5 # Note that this schema.rb definition is the authoritative source for your
6 # database schema. If you need to create the application database on another
7 # system, you should be using db:schema:load, not running all the migrations
8 # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9 # you'll amass, the slower it'll run and the greater likelihood for issues).
11 # It's strongly recommended that you check this file into your version control system.
13 ActiveRecord
::Schema.define(version: 20170918125918) do
15 # These are extensions that must be enabled in order to support this database
16 enable_extension
"plpgsql"
18 create_table
"account_domain_blocks", force
: :cascade do |t
|
21 t
.datetime
"created_at", null
: false
22 t
.datetime
"updated_at", null
: false
23 t
.index
["account_id", "domain"], name
: "index_account_domain_blocks_on_account_id_and_domain", unique
: true
26 create_table
"accounts", force
: :cascade do |t
|
27 t
.string
"username", default
: "", null
: false
29 t
.string
"secret", default
: "", null
: false
31 t
.text
"public_key", default
: "", null
: false
32 t
.string
"remote_url", default
: "", null
: false
33 t
.string
"salmon_url", default
: "", null
: false
34 t
.string
"hub_url", default
: "", null
: false
35 t
.datetime
"created_at", null
: false
36 t
.datetime
"updated_at", null
: false
37 t
.text
"note", default
: "", null
: false
38 t
.string
"display_name", default
: "", null
: false
39 t
.string
"uri", default
: "", null
: false
41 t
.string
"avatar_file_name"
42 t
.string
"avatar_content_type"
43 t
.integer
"avatar_file_size"
44 t
.datetime
"avatar_updated_at"
45 t
.string
"header_file_name"
46 t
.string
"header_content_type"
47 t
.integer
"header_file_size"
48 t
.datetime
"header_updated_at"
49 t
.string
"avatar_remote_url"
50 t
.datetime
"subscription_expires_at"
51 t
.boolean
"silenced", default
: false, null
: false
52 t
.boolean
"suspended", default
: false, null
: false
53 t
.boolean
"locked", default
: false, null
: false
54 t
.string
"header_remote_url", default
: "", null
: false
55 t
.integer
"statuses_count", default
: 0, null
: false
56 t
.integer
"followers_count", default
: 0, null
: false
57 t
.integer
"following_count", default
: 0, null
: false
58 t
.datetime
"last_webfingered_at"
59 t
.string
"inbox_url", default
: "", null
: false
60 t
.string
"outbox_url", default
: "", null
: false
61 t
.string
"shared_inbox_url", default
: "", null
: false
62 t
.string
"followers_url", default
: "", null
: false
63 t
.integer
"protocol", default
: 0, null
: false
64 t
.index
"(((setweight(to_tsvector('simple'::regconfig, (display_name)::text), 'A'::\"char\") || setweight(to_tsvector('simple'::regconfig, (username)::text), 'B'::\"char\")) || setweight(to_tsvector('simple'::regconfig, (COALESCE(domain, ''::character varying))::text), 'C'::\"char\")))", name
: "search_index", using
: :gin
65 t
.index
"lower((username)::text), lower((domain)::text)", name
: "index_accounts_on_username_and_domain_lower"
66 t
.index
["uri"], name
: "index_accounts_on_uri"
67 t
.index
["url"], name
: "index_accounts_on_url"
68 t
.index
["username", "domain"], name
: "index_accounts_on_username_and_domain", unique
: true
71 create_table
"blocks", force
: :cascade do |t
|
72 t
.bigint
"account_id", null
: false
73 t
.bigint
"target_account_id", null
: false
74 t
.datetime
"created_at", null
: false
75 t
.datetime
"updated_at", null
: false
76 t
.index
["account_id", "target_account_id"], name
: "index_blocks_on_account_id_and_target_account_id", unique
: true
79 create_table
"conversation_mutes", force
: :cascade do |t
|
80 t
.bigint
"account_id", null
: false
81 t
.bigint
"conversation_id", null
: false
82 t
.index
["account_id", "conversation_id"], name
: "index_conversation_mutes_on_account_id_and_conversation_id", unique
: true
85 create_table
"conversations", force
: :cascade do |t
|
87 t
.datetime
"created_at", null
: false
88 t
.datetime
"updated_at", null
: false
89 t
.index
["uri"], name
: "index_conversations_on_uri", unique
: true
92 create_table
"custom_emojis", force
: :cascade do |t
|
93 t
.string
"shortcode", default
: "", null
: false
95 t
.string
"image_file_name"
96 t
.string
"image_content_type"
97 t
.integer
"image_file_size"
98 t
.datetime
"image_updated_at"
99 t
.datetime
"created_at", null
: false
100 t
.datetime
"updated_at", null
: false
101 t
.index
["shortcode", "domain"], name
: "index_custom_emojis_on_shortcode_and_domain", unique
: true
104 create_table
"domain_blocks", force
: :cascade do |t
|
105 t
.string
"domain", default
: "", null
: false
106 t
.datetime
"created_at", null
: false
107 t
.datetime
"updated_at", null
: false
108 t
.integer
"severity", default
: 0
109 t
.boolean
"reject_media", default
: false, null
: false
110 t
.index
["domain"], name
: "index_domain_blocks_on_domain", unique
: true
113 create_table
"favourites", force
: :cascade do |t
|
114 t
.bigint
"account_id", null
: false
115 t
.bigint
"status_id", null
: false
116 t
.datetime
"created_at", null
: false
117 t
.datetime
"updated_at", null
: false
118 t
.index
["account_id", "id"], name
: "index_favourites_on_account_id_and_id"
119 t
.index
["account_id", "status_id"], name
: "index_favourites_on_account_id_and_status_id", unique
: true
120 t
.index
["status_id"], name
: "index_favourites_on_status_id"
123 create_table
"follow_requests", force
: :cascade do |t
|
124 t
.bigint
"account_id", null
: false
125 t
.bigint
"target_account_id", null
: false
126 t
.datetime
"created_at", null
: false
127 t
.datetime
"updated_at", null
: false
128 t
.index
["account_id", "target_account_id"], name
: "index_follow_requests_on_account_id_and_target_account_id", unique
: true
131 create_table
"follows", force
: :cascade do |t
|
132 t
.bigint
"account_id", null
: false
133 t
.bigint
"target_account_id", null
: false
134 t
.datetime
"created_at", null
: false
135 t
.datetime
"updated_at", null
: false
136 t
.index
["account_id", "target_account_id"], name
: "index_follows_on_account_id_and_target_account_id", unique
: true
139 create_table
"imports", force
: :cascade do |t
|
140 t
.bigint
"account_id", null
: false
141 t
.integer
"type", null
: false
142 t
.boolean
"approved", default
: false, null
: false
143 t
.datetime
"created_at", null
: false
144 t
.datetime
"updated_at", null
: false
145 t
.string
"data_file_name"
146 t
.string
"data_content_type"
147 t
.integer
"data_file_size"
148 t
.datetime
"data_updated_at"
151 create_table
"media_attachments", force
: :cascade do |t
|
153 t
.string
"file_file_name"
154 t
.string
"file_content_type"
155 t
.integer
"file_file_size"
156 t
.datetime
"file_updated_at"
157 t
.string
"remote_url", default
: "", null
: false
158 t
.bigint
"account_id"
159 t
.datetime
"created_at", null
: false
160 t
.datetime
"updated_at", null
: false
162 t
.integer
"type", default
: 0, null
: false
164 t
.index
["account_id"], name
: "index_media_attachments_on_account_id"
165 t
.index
["shortcode"], name
: "index_media_attachments_on_shortcode", unique
: true
166 t
.index
["status_id"], name
: "index_media_attachments_on_status_id"
169 create_table
"mentions", force
: :cascade do |t
|
170 t
.bigint
"account_id"
172 t
.datetime
"created_at", null
: false
173 t
.datetime
"updated_at", null
: false
174 t
.index
["account_id", "status_id"], name
: "index_mentions_on_account_id_and_status_id", unique
: true
175 t
.index
["status_id"], name
: "index_mentions_on_status_id"
178 create_table
"mutes", force
: :cascade do |t
|
179 t
.bigint
"account_id", null
: false
180 t
.bigint
"target_account_id", null
: false
181 t
.datetime
"created_at", null
: false
182 t
.datetime
"updated_at", null
: false
183 t
.index
["account_id", "target_account_id"], name
: "index_mutes_on_account_id_and_target_account_id", unique
: true
186 create_table
"notifications", force
: :cascade do |t
|
187 t
.bigint
"account_id"
188 t
.bigint
"activity_id"
189 t
.string
"activity_type"
190 t
.datetime
"created_at", null
: false
191 t
.datetime
"updated_at", null
: false
192 t
.bigint
"from_account_id"
193 t
.index
["account_id", "activity_id", "activity_type"], name
: "account_activity", unique
: true
194 t
.index
["activity_id", "activity_type"], name
: "index_notifications_on_activity_id_and_activity_type"
195 t
.index
["id", "account_id", "activity_type"], name
: "index_notifications_on_id_and_account_id_and_activity_type", order
: { id
: :desc }
198 create_table
"oauth_access_grants", force
: :cascade do |t
|
199 t
.bigint
"resource_owner_id", null
: false
200 t
.bigint
"application_id", null
: false
201 t
.string
"token", null
: false
202 t
.integer
"expires_in", null
: false
203 t
.text
"redirect_uri", null
: false
204 t
.datetime
"created_at", null
: false
205 t
.datetime
"revoked_at"
207 t
.index
["token"], name
: "index_oauth_access_grants_on_token", unique
: true
210 create_table
"oauth_access_tokens", force
: :cascade do |t
|
211 t
.bigint
"resource_owner_id"
212 t
.bigint
"application_id"
213 t
.string
"token", null
: false
214 t
.string
"refresh_token"
215 t
.integer
"expires_in"
216 t
.datetime
"revoked_at"
217 t
.datetime
"created_at", null
: false
219 t
.index
["refresh_token"], name
: "index_oauth_access_tokens_on_refresh_token", unique
: true
220 t
.index
["resource_owner_id"], name
: "index_oauth_access_tokens_on_resource_owner_id"
221 t
.index
["token"], name
: "index_oauth_access_tokens_on_token", unique
: true
224 create_table
"oauth_applications", force
: :cascade do |t
|
225 t
.string
"name", null
: false
226 t
.string
"uid", null
: false
227 t
.string
"secret", null
: false
228 t
.text
"redirect_uri", null
: false
229 t
.string
"scopes", default
: "", null
: false
230 t
.datetime
"created_at"
231 t
.datetime
"updated_at"
232 t
.boolean
"superapp", default
: false, null
: false
235 t
.string
"owner_type"
236 t
.index
["owner_id", "owner_type"], name
: "index_oauth_applications_on_owner_id_and_owner_type"
237 t
.index
["uid"], name
: "index_oauth_applications_on_uid", unique
: true
240 create_table
"preview_cards", force
: :cascade do |t
|
241 t
.string
"url", default
: "", null
: false
242 t
.string
"title", default
: "", null
: false
243 t
.string
"description", default
: "", null
: false
244 t
.string
"image_file_name"
245 t
.string
"image_content_type"
246 t
.integer
"image_file_size"
247 t
.datetime
"image_updated_at"
248 t
.integer
"type", default
: 0, null
: false
249 t
.text
"html", default
: "", null
: false
250 t
.string
"author_name", default
: "", null
: false
251 t
.string
"author_url", default
: "", null
: false
252 t
.string
"provider_name", default
: "", null
: false
253 t
.string
"provider_url", default
: "", null
: false
254 t
.integer
"width", default
: 0, null
: false
255 t
.integer
"height", default
: 0, null
: false
256 t
.datetime
"created_at", null
: false
257 t
.datetime
"updated_at", null
: false
258 t
.index
["url"], name
: "index_preview_cards_on_url", unique
: true
261 create_table
"preview_cards_statuses", id
: false, force
: :cascade do |t
|
262 t
.bigint
"preview_card_id", null
: false
263 t
.bigint
"status_id", null
: false
264 t
.index
["status_id", "preview_card_id"], name
: "index_preview_cards_statuses_on_status_id_and_preview_card_id"
267 create_table
"reports", force
: :cascade do |t
|
268 t
.bigint
"account_id", null
: false
269 t
.bigint
"target_account_id", null
: false
270 t
.bigint
"status_ids", default
: [], null
: false, array
: true
271 t
.text
"comment", default
: "", null
: false
272 t
.boolean
"action_taken", default
: false, null
: false
273 t
.datetime
"created_at", null
: false
274 t
.datetime
"updated_at", null
: false
275 t
.bigint
"action_taken_by_account_id"
276 t
.index
["account_id"], name
: "index_reports_on_account_id"
277 t
.index
["target_account_id"], name
: "index_reports_on_target_account_id"
280 create_table
"session_activations", force
: :cascade do |t
|
281 t
.bigint
"user_id", null
: false
282 t
.string
"session_id", null
: false
283 t
.datetime
"created_at", null
: false
284 t
.datetime
"updated_at", null
: false
285 t
.string
"user_agent", default
: "", null
: false
287 t
.bigint
"access_token_id"
288 t
.bigint
"web_push_subscription_id"
289 t
.index
["session_id"], name
: "index_session_activations_on_session_id", unique
: true
290 t
.index
["user_id"], name
: "index_session_activations_on_user_id"
293 create_table
"settings", force
: :cascade do |t
|
294 t
.string
"var", null
: false
296 t
.string
"thing_type"
298 t
.datetime
"created_at"
299 t
.datetime
"updated_at"
300 t
.index
["thing_type", "thing_id", "var"], name
: "index_settings_on_thing_type_and_thing_id_and_var", unique
: true
303 create_table
"site_uploads", force
: :cascade do |t
|
304 t
.string
"var", default
: "", null
: false
305 t
.string
"file_file_name"
306 t
.string
"file_content_type"
307 t
.integer
"file_file_size"
308 t
.datetime
"file_updated_at"
310 t
.datetime
"created_at", null
: false
311 t
.datetime
"updated_at", null
: false
312 t
.index
["var"], name
: "index_site_uploads_on_var", unique
: true
315 create_table
"status_pins", force
: :cascade do |t
|
316 t
.bigint
"account_id", null
: false
317 t
.bigint
"status_id", null
: false
318 t
.datetime
"created_at", default
: -> { "now()" }, null
: false
319 t
.datetime
"updated_at", default
: -> { "now()" }, null
: false
320 t
.index
["account_id", "status_id"], name
: "index_status_pins_on_account_id_and_status_id", unique
: true
323 create_table
"statuses", force
: :cascade do |t
|
325 t
.bigint
"account_id", null
: false
326 t
.text
"text", default
: "", null
: false
327 t
.datetime
"created_at", null
: false
328 t
.datetime
"updated_at", null
: false
329 t
.bigint
"in_reply_to_id"
330 t
.bigint
"reblog_of_id"
332 t
.boolean
"sensitive", default
: false, null
: false
333 t
.integer
"visibility", default
: 0, null
: false
334 t
.bigint
"in_reply_to_account_id"
335 t
.bigint
"application_id"
336 t
.text
"spoiler_text", default
: "", null
: false
337 t
.boolean
"reply", default
: false, null
: false
338 t
.integer
"favourites_count", default
: 0, null
: false
339 t
.integer
"reblogs_count", default
: 0, null
: false
341 t
.bigint
"conversation_id"
343 t
.index
["account_id", "id"], name
: "index_statuses_on_account_id_id"
344 t
.index
["conversation_id"], name
: "index_statuses_on_conversation_id"
345 t
.index
["in_reply_to_id"], name
: "index_statuses_on_in_reply_to_id"
346 t
.index
["reblog_of_id"], name
: "index_statuses_on_reblog_of_id"
347 t
.index
["uri"], name
: "index_statuses_on_uri", unique
: true
350 create_table
"statuses_tags", id
: false, force
: :cascade do |t
|
351 t
.bigint
"status_id", null
: false
352 t
.bigint
"tag_id", null
: false
353 t
.index
["status_id"], name
: "index_statuses_tags_on_status_id"
354 t
.index
["tag_id", "status_id"], name
: "index_statuses_tags_on_tag_id_and_status_id", unique
: true
357 create_table
"stream_entries", force
: :cascade do |t
|
358 t
.bigint
"account_id"
359 t
.bigint
"activity_id"
360 t
.string
"activity_type"
361 t
.datetime
"created_at", null
: false
362 t
.datetime
"updated_at", null
: false
363 t
.boolean
"hidden", default
: false, null
: false
364 t
.index
["account_id"], name
: "index_stream_entries_on_account_id"
365 t
.index
["activity_id", "activity_type"], name
: "index_stream_entries_on_activity_id_and_activity_type"
368 create_table
"subscriptions", force
: :cascade do |t
|
369 t
.string
"callback_url", default
: "", null
: false
371 t
.datetime
"expires_at"
372 t
.boolean
"confirmed", default
: false, null
: false
373 t
.bigint
"account_id", null
: false
374 t
.datetime
"created_at", null
: false
375 t
.datetime
"updated_at", null
: false
376 t
.datetime
"last_successful_delivery_at"
378 t
.index
["account_id", "callback_url"], name
: "index_subscriptions_on_account_id_and_callback_url", unique
: true
381 create_table
"tags", force
: :cascade do |t
|
382 t
.string
"name", default
: "", null
: false
383 t
.datetime
"created_at", null
: false
384 t
.datetime
"updated_at", null
: false
385 t
.index
"lower((name)::text) text_pattern_ops", name
: "hashtag_search_index"
386 t
.index
["name"], name
: "index_tags_on_name", unique
: true
389 create_table
"users", force
: :cascade do |t
|
390 t
.string
"email", default
: "", null
: false
391 t
.bigint
"account_id", null
: false
392 t
.datetime
"created_at", null
: false
393 t
.datetime
"updated_at", null
: false
394 t
.string
"encrypted_password", default
: "", null
: false
395 t
.string
"reset_password_token"
396 t
.datetime
"reset_password_sent_at"
397 t
.datetime
"remember_created_at"
398 t
.integer
"sign_in_count", default
: 0, null
: false
399 t
.datetime
"current_sign_in_at"
400 t
.datetime
"last_sign_in_at"
401 t
.inet
"current_sign_in_ip"
402 t
.inet
"last_sign_in_ip"
403 t
.boolean
"admin", default
: false, null
: false
404 t
.string
"confirmation_token"
405 t
.datetime
"confirmed_at"
406 t
.datetime
"confirmation_sent_at"
407 t
.string
"unconfirmed_email"
409 t
.string
"encrypted_otp_secret"
410 t
.string
"encrypted_otp_secret_iv"
411 t
.string
"encrypted_otp_secret_salt"
412 t
.integer
"consumed_timestep"
413 t
.boolean
"otp_required_for_login", default
: false, null
: false
414 t
.datetime
"last_emailed_at"
415 t
.string
"otp_backup_codes", array
: true
416 t
.string
"filtered_languages", default
: [], null
: false, array
: true
417 t
.index
["account_id"], name
: "index_users_on_account_id"
418 t
.index
["confirmation_token"], name
: "index_users_on_confirmation_token", unique
: true
419 t
.index
["email"], name
: "index_users_on_email", unique
: true
420 t
.index
["filtered_languages"], name
: "index_users_on_filtered_languages", using
: :gin
421 t
.index
["reset_password_token"], name
: "index_users_on_reset_password_token", unique
: true
424 create_table
"web_push_subscriptions", force
: :cascade do |t
|
425 t
.string
"endpoint", null
: false
426 t
.string
"key_p256dh", null
: false
427 t
.string
"key_auth", null
: false
429 t
.datetime
"created_at", null
: false
430 t
.datetime
"updated_at", null
: false
433 create_table
"web_settings", force
: :cascade do |t
|
436 t
.datetime
"created_at", null
: false
437 t
.datetime
"updated_at", null
: false
438 t
.index
["user_id"], name
: "index_web_settings_on_user_id", unique
: true
441 add_foreign_key
"account_domain_blocks", "accounts", on_delete
: :cascade
442 add_foreign_key
"blocks", "accounts", column
: "target_account_id", on_delete
: :cascade
443 add_foreign_key
"blocks", "accounts", on_delete
: :cascade
444 add_foreign_key
"conversation_mutes", "accounts", on_delete
: :cascade
445 add_foreign_key
"conversation_mutes", "conversations", on_delete
: :cascade
446 add_foreign_key
"favourites", "accounts", on_delete
: :cascade
447 add_foreign_key
"favourites", "statuses", on_delete
: :cascade
448 add_foreign_key
"follow_requests", "accounts", column
: "target_account_id", on_delete
: :cascade
449 add_foreign_key
"follow_requests", "accounts", on_delete
: :cascade
450 add_foreign_key
"follows", "accounts", column
: "target_account_id", on_delete
: :cascade
451 add_foreign_key
"follows", "accounts", on_delete
: :cascade
452 add_foreign_key
"imports", "accounts", on_delete
: :cascade
453 add_foreign_key
"media_attachments", "accounts", on_delete
: :nullify
454 add_foreign_key
"media_attachments", "statuses", on_delete
: :nullify
455 add_foreign_key
"mentions", "accounts", on_delete
: :cascade
456 add_foreign_key
"mentions", "statuses", on_delete
: :cascade
457 add_foreign_key
"mutes", "accounts", column
: "target_account_id", on_delete
: :cascade
458 add_foreign_key
"mutes", "accounts", on_delete
: :cascade
459 add_foreign_key
"notifications", "accounts", column
: "from_account_id", on_delete
: :cascade
460 add_foreign_key
"notifications", "accounts", on_delete
: :cascade
461 add_foreign_key
"oauth_access_grants", "oauth_applications", column
: "application_id", on_delete
: :cascade
462 add_foreign_key
"oauth_access_grants", "users", column
: "resource_owner_id", on_delete
: :cascade
463 add_foreign_key
"oauth_access_tokens", "oauth_applications", column
: "application_id", on_delete
: :cascade
464 add_foreign_key
"oauth_access_tokens", "users", column
: "resource_owner_id", on_delete
: :cascade
465 add_foreign_key
"oauth_applications", "users", column
: "owner_id", on_delete
: :cascade
466 add_foreign_key
"reports", "accounts", column
: "action_taken_by_account_id", on_delete
: :nullify
467 add_foreign_key
"reports", "accounts", column
: "target_account_id", on_delete
: :cascade
468 add_foreign_key
"reports", "accounts", on_delete
: :cascade
469 add_foreign_key
"session_activations", "oauth_access_tokens", column
: "access_token_id", on_delete
: :cascade
470 add_foreign_key
"session_activations", "users", on_delete
: :cascade
471 add_foreign_key
"status_pins", "accounts", on_delete
: :cascade
472 add_foreign_key
"status_pins", "statuses", on_delete
: :cascade
473 add_foreign_key
"statuses", "accounts", column
: "in_reply_to_account_id", on_delete
: :nullify
474 add_foreign_key
"statuses", "accounts", on_delete
: :cascade
475 add_foreign_key
"statuses", "statuses", column
: "in_reply_to_id", on_delete
: :nullify
476 add_foreign_key
"statuses", "statuses", column
: "reblog_of_id", on_delete
: :cascade
477 add_foreign_key
"statuses_tags", "statuses", on_delete
: :cascade
478 add_foreign_key
"statuses_tags", "tags", on_delete
: :cascade
479 add_foreign_key
"stream_entries", "accounts", on_delete
: :cascade
480 add_foreign_key
"subscriptions", "accounts", on_delete
: :cascade
481 add_foreign_key
"users", "accounts", on_delete
: :cascade
482 add_foreign_key
"web_settings", "users", on_delete
: :cascade
This page took 0.277383 seconds and 4 git commands to generate.