]>
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 # This file is the source Rails uses to define your schema when running `bin/rails
6 # db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
7 # be faster and is potentially less error prone than running all of your
8 # migrations from scratch. Old migrations may fail to apply correctly if those
9 # migrations use external dependencies or application code.
11 # It's strongly recommended that you check this file into your version control system.
13 ActiveRecord
::Schema . define ( version : 2022_02_24_010024 ) do
15 # These are extensions that must be enabled in order to support this database
16 enable_extension
"plpgsql"
18 create_table
"account_aliases" , force
: :cascade do | t
|
20 t
. string
"acct" , default
: "" , null
: false
21 t
. string
"uri" , default
: "" , null
: false
22 t
. datetime
"created_at" , null
: false
23 t
. datetime
"updated_at" , null
: false
24 t
. index
[ "account_id" ], name
: "index_account_aliases_on_account_id"
27 create_table
"account_conversations" , force
: :cascade do | t
|
29 t
. bigint
"conversation_id"
30 t
. bigint
"participant_account_ids" , default
: [], null
: false , array
: true
31 t
. bigint
"status_ids" , default
: [], null
: false , array
: true
32 t
. bigint
"last_status_id"
33 t
. integer
"lock_version" , default
: 0 , null
: false
34 t
. boolean
"unread" , default
: false , null
: false
35 t
. index
[ "account_id" , "conversation_id" , "participant_account_ids" ], name
: "index_unique_conversations" , unique
: true
36 t
. index
[ "conversation_id" ], name
: "index_account_conversations_on_conversation_id"
39 create_table
"account_deletion_requests" , force
: :cascade do | t
|
41 t
. datetime
"created_at" , null
: false
42 t
. datetime
"updated_at" , null
: false
43 t
. index
[ "account_id" ], name
: "index_account_deletion_requests_on_account_id"
46 create_table
"account_domain_blocks" , force
: :cascade do | t
|
48 t
. datetime
"created_at" , null
: false
49 t
. datetime
"updated_at" , null
: false
51 t
. index
[ "account_id" , "domain" ], name
: "index_account_domain_blocks_on_account_id_and_domain" , unique
: true
54 create_table
"account_migrations" , force
: :cascade do | t
|
56 t
. string
"acct" , default
: "" , null
: false
57 t
. bigint
"followers_count" , default
: 0 , null
: false
58 t
. bigint
"target_account_id"
59 t
. datetime
"created_at" , null
: false
60 t
. datetime
"updated_at" , null
: false
61 t
. index
[ "account_id" ], name
: "index_account_migrations_on_account_id"
62 t
. index
[ "target_account_id" ], name
: "index_account_migrations_on_target_account_id"
65 create_table
"account_moderation_notes" , force
: :cascade do | t
|
66 t
. text
"content" , null
: false
67 t
. bigint
"account_id" , null
: false
68 t
. bigint
"target_account_id" , null
: false
69 t
. datetime
"created_at" , null
: false
70 t
. datetime
"updated_at" , null
: false
71 t
. index
[ "account_id" ], name
: "index_account_moderation_notes_on_account_id"
72 t
. index
[ "target_account_id" ], name
: "index_account_moderation_notes_on_target_account_id"
75 create_table
"account_notes" , force
: :cascade do | t
|
77 t
. bigint
"target_account_id"
78 t
. text
"comment" , null
: false
79 t
. datetime
"created_at" , null
: false
80 t
. datetime
"updated_at" , null
: false
81 t
. index
[ "account_id" , "target_account_id" ], name
: "index_account_notes_on_account_id_and_target_account_id" , unique
: true
82 t
. index
[ "target_account_id" ], name
: "index_account_notes_on_target_account_id"
85 create_table
"account_pins" , force
: :cascade do | t
|
87 t
. bigint
"target_account_id"
88 t
. datetime
"created_at" , null
: false
89 t
. datetime
"updated_at" , null
: false
90 t
. index
[ "account_id" , "target_account_id" ], name
: "index_account_pins_on_account_id_and_target_account_id" , unique
: true
91 t
. index
[ "target_account_id" ], name
: "index_account_pins_on_target_account_id"
94 create_table
"account_stats" , force
: :cascade do | t
|
95 t
. bigint
"account_id" , null
: false
96 t
. bigint
"statuses_count" , default
: 0 , null
: false
97 t
. bigint
"following_count" , default
: 0 , null
: false
98 t
. bigint
"followers_count" , default
: 0 , null
: false
99 t
. datetime
"created_at" , null
: false
100 t
. datetime
"updated_at" , null
: false
101 t
. datetime
"last_status_at"
102 t
. index
[ "account_id" ], name
: "index_account_stats_on_account_id" , unique
: true
105 create_table
"account_statuses_cleanup_policies" , force
: :cascade do | t
|
106 t
. bigint
"account_id" , null
: false
107 t
. boolean
"enabled" , default
: true , null
: false
108 t
. integer
"min_status_age" , default
: 1209600 , null
: false
109 t
. boolean
"keep_direct" , default
: true , null
: false
110 t
. boolean
"keep_pinned" , default
: true , null
: false
111 t
. boolean
"keep_polls" , default
: false , null
: false
112 t
. boolean
"keep_media" , default
: false , null
: false
113 t
. boolean
"keep_self_fav" , default
: true , null
: false
114 t
. boolean
"keep_self_bookmark" , default
: true , null
: false
116 t
. integer
"min_reblogs"
117 t
. datetime
"created_at" , precision
: 6 , null
: false
118 t
. datetime
"updated_at" , precision
: 6 , null
: false
119 t
. index
[ "account_id" ], name
: "index_account_statuses_cleanup_policies_on_account_id"
122 create_table
"account_warning_presets" , force
: :cascade do | t
|
123 t
. text
"text" , default
: "" , null
: false
124 t
. datetime
"created_at" , null
: false
125 t
. datetime
"updated_at" , null
: false
126 t
. string
"title" , default
: "" , null
: false
129 create_table
"account_warnings" , force
: :cascade do | t
|
130 t
. bigint
"account_id"
131 t
. bigint
"target_account_id"
132 t
. integer
"action" , default
: 0 , null
: false
133 t
. text
"text" , default
: "" , null
: false
134 t
. datetime
"created_at" , null
: false
135 t
. datetime
"updated_at" , null
: false
137 t
. string
"status_ids" , array
: true
138 t
. datetime
"overruled_at"
139 t
. index
[ "account_id" ], name
: "index_account_warnings_on_account_id"
140 t
. index
[ "target_account_id" ], name
: "index_account_warnings_on_target_account_id"
143 create_table
"accounts" , id
: :bigint , default
: -> { "timestamp_id('accounts'::text)" }, force
: :cascade do | t
|
144 t
. string
"username" , default
: "" , null
: false
147 t
. text
"public_key" , default
: "" , null
: false
148 t
. datetime
"created_at" , null
: false
149 t
. datetime
"updated_at" , null
: false
150 t
. text
"note" , default
: "" , null
: false
151 t
. string
"display_name" , default
: "" , null
: false
152 t
. string
"uri" , default
: "" , null
: false
154 t
. string
"avatar_file_name"
155 t
. string
"avatar_content_type"
156 t
. integer
"avatar_file_size"
157 t
. datetime
"avatar_updated_at"
158 t
. string
"header_file_name"
159 t
. string
"header_content_type"
160 t
. integer
"header_file_size"
161 t
. datetime
"header_updated_at"
162 t
. string
"avatar_remote_url"
163 t
. boolean
"locked" , default
: false , null
: false
164 t
. string
"header_remote_url" , default
: "" , null
: false
165 t
. datetime
"last_webfingered_at"
166 t
. string
"inbox_url" , default
: "" , null
: false
167 t
. string
"outbox_url" , default
: "" , null
: false
168 t
. string
"shared_inbox_url" , default
: "" , null
: false
169 t
. string
"followers_url" , default
: "" , null
: false
170 t
. integer
"protocol" , default
: 0 , null
: false
171 t
. boolean
"memorial" , default
: false , null
: false
172 t
. bigint
"moved_to_account_id"
173 t
. string
"featured_collection_url"
175 t
. string
"actor_type"
176 t
. boolean
"discoverable"
177 t
. string
"also_known_as" , array
: true
178 t
. datetime
"silenced_at"
179 t
. datetime
"suspended_at"
180 t
. boolean
"hide_collections"
181 t
. integer
"avatar_storage_schema_version"
182 t
. integer
"header_storage_schema_version"
183 t
. string
"devices_url"
184 t
. integer
"suspension_origin"
185 t
. datetime
"sensitized_at"
186 t
. boolean
"trendable"
187 t
. datetime
"reviewed_at"
188 t
. datetime
"requested_review_at"
189 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
190 t
. index
"lower((username)::text), COALESCE(lower((domain)::text), ''::text)" , name
: "index_accounts_on_username_and_domain_lower" , unique
: true
191 t
. index
[ "moved_to_account_id" ], name
: "index_accounts_on_moved_to_account_id"
192 t
. index
[ "uri" ], name
: "index_accounts_on_uri"
193 t
. index
[ "url" ], name
: "index_accounts_on_url"
196 create_table
"accounts_tags" , id
: false , force
: :cascade do | t
|
197 t
. bigint
"account_id" , null
: false
198 t
. bigint
"tag_id" , null
: false
199 t
. index
[ "account_id" , "tag_id" ], name
: "index_accounts_tags_on_account_id_and_tag_id"
200 t
. index
[ "tag_id" , "account_id" ], name
: "index_accounts_tags_on_tag_id_and_account_id" , unique
: true
203 create_table
"admin_action_logs" , force
: :cascade do | t
|
204 t
. bigint
"account_id"
205 t
. string
"action" , default
: "" , null
: false
206 t
. string
"target_type"
208 t
. text
"recorded_changes" , default
: "" , null
: false
209 t
. datetime
"created_at" , null
: false
210 t
. datetime
"updated_at" , null
: false
211 t
. index
[ "account_id" ], name
: "index_admin_action_logs_on_account_id"
212 t
. index
[ "target_type" , "target_id" ], name
: "index_admin_action_logs_on_target_type_and_target_id"
215 create_table
"announcement_mutes" , force
: :cascade do | t
|
216 t
. bigint
"account_id"
217 t
. bigint
"announcement_id"
218 t
. datetime
"created_at" , null
: false
219 t
. datetime
"updated_at" , null
: false
220 t
. index
[ "account_id" , "announcement_id" ], name
: "index_announcement_mutes_on_account_id_and_announcement_id" , unique
: true
221 t
. index
[ "announcement_id" ], name
: "index_announcement_mutes_on_announcement_id"
224 create_table
"announcement_reactions" , force
: :cascade do | t
|
225 t
. bigint
"account_id"
226 t
. bigint
"announcement_id"
227 t
. string
"name" , default
: "" , null
: false
228 t
. bigint
"custom_emoji_id"
229 t
. datetime
"created_at" , null
: false
230 t
. datetime
"updated_at" , null
: false
231 t
. index
[ "account_id" , "announcement_id" , "name" ], name
: "index_announcement_reactions_on_account_id_and_announcement_id" , unique
: true
232 t
. index
[ "announcement_id" ], name
: "index_announcement_reactions_on_announcement_id"
233 t
. index
[ "custom_emoji_id" ], name
: "index_announcement_reactions_on_custom_emoji_id"
236 create_table
"announcements" , force
: :cascade do | t
|
237 t
. text
"text" , default
: "" , null
: false
238 t
. boolean
"published" , default
: false , null
: false
239 t
. boolean
"all_day" , default
: false , null
: false
240 t
. datetime
"scheduled_at"
241 t
. datetime
"starts_at"
243 t
. datetime
"created_at" , null
: false
244 t
. datetime
"updated_at" , null
: false
245 t
. datetime
"published_at"
246 t
. bigint
"status_ids" , array
: true
249 create_table
"appeals" , force
: :cascade do | t
|
250 t
. bigint
"account_id" , null
: false
251 t
. bigint
"account_warning_id" , null
: false
252 t
. text
"text" , default
: "" , null
: false
253 t
. datetime
"approved_at"
254 t
. bigint
"approved_by_account_id"
255 t
. datetime
"rejected_at"
256 t
. bigint
"rejected_by_account_id"
257 t
. datetime
"created_at" , precision
: 6 , null
: false
258 t
. datetime
"updated_at" , precision
: 6 , null
: false
259 t
. index
[ "account_id" ], name
: "index_appeals_on_account_id"
260 t
. index
[ "account_warning_id" ], name
: "index_appeals_on_account_warning_id" , unique
: true
261 t
. index
[ "approved_by_account_id" ], name
: "index_appeals_on_approved_by_account_id"
262 t
. index
[ "rejected_by_account_id" ], name
: "index_appeals_on_rejected_by_account_id"
265 create_table
"backups" , force
: :cascade do | t
|
267 t
. string
"dump_file_name"
268 t
. string
"dump_content_type"
269 t
. datetime
"dump_updated_at"
270 t
. boolean
"processed" , default
: false , null
: false
271 t
. datetime
"created_at" , null
: false
272 t
. datetime
"updated_at" , null
: false
273 t
. bigint
"dump_file_size"
276 create_table
"blocks" , force
: :cascade do | t
|
277 t
. datetime
"created_at" , null
: false
278 t
. datetime
"updated_at" , null
: false
279 t
. bigint
"account_id" , null
: false
280 t
. bigint
"target_account_id" , null
: false
282 t
. index
[ "account_id" , "target_account_id" ], name
: "index_blocks_on_account_id_and_target_account_id" , unique
: true
283 t
. index
[ "target_account_id" ], name
: "index_blocks_on_target_account_id"
286 create_table
"bookmarks" , force
: :cascade do | t
|
287 t
. bigint
"account_id" , null
: false
288 t
. bigint
"status_id" , null
: false
289 t
. datetime
"created_at" , null
: false
290 t
. datetime
"updated_at" , null
: false
291 t
. index
[ "account_id" , "status_id" ], name
: "index_bookmarks_on_account_id_and_status_id" , unique
: true
292 t
. index
[ "status_id" ], name
: "index_bookmarks_on_status_id"
295 create_table
"canonical_email_blocks" , force
: :cascade do | t
|
296 t
. string
"canonical_email_hash" , default
: "" , null
: false
297 t
. bigint
"reference_account_id" , null
: false
298 t
. datetime
"created_at" , precision
: 6 , null
: false
299 t
. datetime
"updated_at" , precision
: 6 , null
: false
300 t
. index
[ "canonical_email_hash" ], name
: "index_canonical_email_blocks_on_canonical_email_hash" , unique
: true
301 t
. index
[ "reference_account_id" ], name
: "index_canonical_email_blocks_on_reference_account_id"
304 create_table
"conversation_mutes" , force
: :cascade do | t
|
305 t
. bigint
"conversation_id" , null
: false
306 t
. bigint
"account_id" , null
: false
307 t
. index
[ "account_id" , "conversation_id" ], name
: "index_conversation_mutes_on_account_id_and_conversation_id" , unique
: true
310 create_table
"conversations" , force
: :cascade do | t
|
312 t
. datetime
"created_at" , null
: false
313 t
. datetime
"updated_at" , null
: false
314 t
. index
[ "uri" ], name
: "index_conversations_on_uri" , unique
: true
317 create_table
"custom_emoji_categories" , force
: :cascade do | t
|
319 t
. datetime
"created_at" , null
: false
320 t
. datetime
"updated_at" , null
: false
321 t
. index
[ "name" ], name
: "index_custom_emoji_categories_on_name" , unique
: true
324 create_table
"custom_emojis" , force
: :cascade do | t
|
325 t
. string
"shortcode" , default
: "" , null
: false
327 t
. string
"image_file_name"
328 t
. string
"image_content_type"
329 t
. integer
"image_file_size"
330 t
. datetime
"image_updated_at"
331 t
. datetime
"created_at" , null
: false
332 t
. datetime
"updated_at" , null
: false
333 t
. boolean
"disabled" , default
: false , null
: false
335 t
. string
"image_remote_url"
336 t
. boolean
"visible_in_picker" , default
: true , null
: false
337 t
. bigint
"category_id"
338 t
. integer
"image_storage_schema_version"
339 t
. index
[ "shortcode" , "domain" ], name
: "index_custom_emojis_on_shortcode_and_domain" , unique
: true
342 create_table
"custom_filters" , force
: :cascade do | t
|
343 t
. bigint
"account_id"
344 t
. datetime
"expires_at"
345 t
. text
"phrase" , default
: "" , null
: false
346 t
. string
"context" , default
: [], null
: false , array
: true
347 t
. boolean
"irreversible" , default
: false , null
: false
348 t
. datetime
"created_at" , null
: false
349 t
. datetime
"updated_at" , null
: false
350 t
. boolean
"whole_word" , default
: true , null
: false
351 t
. index
[ "account_id" ], name
: "index_custom_filters_on_account_id"
354 create_table
"devices" , force
: :cascade do | t
|
355 t
. bigint
"access_token_id"
356 t
. bigint
"account_id"
357 t
. string
"device_id" , default
: "" , null
: false
358 t
. string
"name" , default
: "" , null
: false
359 t
. text
"fingerprint_key" , default
: "" , null
: false
360 t
. text
"identity_key" , default
: "" , null
: false
361 t
. datetime
"created_at" , null
: false
362 t
. datetime
"updated_at" , null
: false
363 t
. index
[ "access_token_id" ], name
: "index_devices_on_access_token_id"
364 t
. index
[ "account_id" ], name
: "index_devices_on_account_id"
367 create_table
"domain_allows" , force
: :cascade do | t
|
368 t
. string
"domain" , default
: "" , null
: false
369 t
. datetime
"created_at" , null
: false
370 t
. datetime
"updated_at" , null
: false
371 t
. index
[ "domain" ], name
: "index_domain_allows_on_domain" , unique
: true
374 create_table
"domain_blocks" , force
: :cascade do | t
|
375 t
. string
"domain" , default
: "" , null
: false
376 t
. datetime
"created_at" , null
: false
377 t
. datetime
"updated_at" , null
: false
378 t
. integer
"severity" , default
: 0
379 t
. boolean
"reject_media" , default
: false , null
: false
380 t
. boolean
"reject_reports" , default
: false , null
: false
381 t
. text
"private_comment"
382 t
. text
"public_comment"
383 t
. boolean
"obfuscate" , default
: false , null
: false
384 t
. index
[ "domain" ], name
: "index_domain_blocks_on_domain" , unique
: true
387 create_table
"email_domain_blocks" , force
: :cascade do | t
|
388 t
. string
"domain" , default
: "" , null
: false
389 t
. datetime
"created_at" , null
: false
390 t
. datetime
"updated_at" , null
: false
392 t
. inet
"ips" , array
: true
393 t
. datetime
"last_refresh_at"
395 t
. index
[ "domain" ], name
: "index_email_domain_blocks_on_domain" , unique
: true
398 create_table
"encrypted_messages" , id
: :bigint , default
: -> { "timestamp_id('encrypted_messages'::text)" }, force
: :cascade do | t
|
400 t
. bigint
"from_account_id"
401 t
. string
"from_device_id" , default
: "" , null
: false
402 t
. integer
"type" , default
: 0 , null
: false
403 t
. text
"body" , default
: "" , null
: false
404 t
. text
"digest" , default
: "" , null
: false
405 t
. text
"message_franking" , default
: "" , null
: false
406 t
. datetime
"created_at" , null
: false
407 t
. datetime
"updated_at" , null
: false
408 t
. index
[ "device_id" ], name
: "index_encrypted_messages_on_device_id"
409 t
. index
[ "from_account_id" ], name
: "index_encrypted_messages_on_from_account_id"
412 create_table
"favourites" , force
: :cascade do | t
|
413 t
. datetime
"created_at" , null
: false
414 t
. datetime
"updated_at" , null
: false
415 t
. bigint
"account_id" , null
: false
416 t
. bigint
"status_id" , null
: false
417 t
. index
[ "account_id" , "id" ], name
: "index_favourites_on_account_id_and_id"
418 t
. index
[ "account_id" , "status_id" ], name
: "index_favourites_on_account_id_and_status_id" , unique
: true
419 t
. index
[ "status_id" ], name
: "index_favourites_on_status_id"
422 create_table
"featured_tags" , force
: :cascade do | t
|
423 t
. bigint
"account_id"
425 t
. bigint
"statuses_count" , default
: 0 , null
: false
426 t
. datetime
"last_status_at"
427 t
. datetime
"created_at" , null
: false
428 t
. datetime
"updated_at" , null
: false
429 t
. index
[ "account_id" ], name
: "index_featured_tags_on_account_id"
430 t
. index
[ "tag_id" ], name
: "index_featured_tags_on_tag_id"
433 create_table
"follow_recommendation_suppressions" , force
: :cascade do | t
|
434 t
. bigint
"account_id" , null
: false
435 t
. datetime
"created_at" , precision
: 6 , null
: false
436 t
. datetime
"updated_at" , precision
: 6 , null
: false
437 t
. index
[ "account_id" ], name
: "index_follow_recommendation_suppressions_on_account_id" , unique
: true
440 create_table
"follow_requests" , force
: :cascade do | t
|
441 t
. datetime
"created_at" , null
: false
442 t
. datetime
"updated_at" , null
: false
443 t
. bigint
"account_id" , null
: false
444 t
. bigint
"target_account_id" , null
: false
445 t
. boolean
"show_reblogs" , default
: true , null
: false
447 t
. boolean
"notify" , default
: false , null
: false
448 t
. index
[ "account_id" , "target_account_id" ], name
: "index_follow_requests_on_account_id_and_target_account_id" , unique
: true
451 create_table
"follows" , force
: :cascade do | t
|
452 t
. datetime
"created_at" , null
: false
453 t
. datetime
"updated_at" , null
: false
454 t
. bigint
"account_id" , null
: false
455 t
. bigint
"target_account_id" , null
: false
456 t
. boolean
"show_reblogs" , default
: true , null
: false
458 t
. boolean
"notify" , default
: false , null
: false
459 t
. index
[ "account_id" , "target_account_id" ], name
: "index_follows_on_account_id_and_target_account_id" , unique
: true
460 t
. index
[ "target_account_id" ], name
: "index_follows_on_target_account_id"
463 create_table
"identities" , force
: :cascade do | t
|
464 t
. string
"provider" , default
: "" , null
: false
465 t
. string
"uid" , default
: "" , null
: false
466 t
. datetime
"created_at" , null
: false
467 t
. datetime
"updated_at" , null
: false
469 t
. index
[ "user_id" ], name
: "index_identities_on_user_id"
472 create_table
"imports" , force
: :cascade do | t
|
473 t
. integer
"type" , null
: false
474 t
. boolean
"approved" , default
: false , null
: false
475 t
. datetime
"created_at" , null
: false
476 t
. datetime
"updated_at" , null
: false
477 t
. string
"data_file_name"
478 t
. string
"data_content_type"
479 t
. integer
"data_file_size"
480 t
. datetime
"data_updated_at"
481 t
. bigint
"account_id" , null
: false
482 t
. boolean
"overwrite" , default
: false , null
: false
485 create_table
"invites" , force
: :cascade do | t
|
486 t
. bigint
"user_id" , null
: false
487 t
. string
"code" , default
: "" , null
: false
488 t
. datetime
"expires_at"
490 t
. integer
"uses" , default
: 0 , null
: false
491 t
. datetime
"created_at" , null
: false
492 t
. datetime
"updated_at" , null
: false
493 t
. boolean
"autofollow" , default
: false , null
: false
495 t
. index
[ "code" ], name
: "index_invites_on_code" , unique
: true
496 t
. index
[ "user_id" ], name
: "index_invites_on_user_id"
499 create_table
"ip_blocks" , force
: :cascade do | t
|
500 t
. datetime
"created_at" , null
: false
501 t
. datetime
"updated_at" , null
: false
502 t
. datetime
"expires_at"
503 t
. inet
"ip" , default
: "0.0.0.0" , null
: false
504 t
. integer
"severity" , default
: 0 , null
: false
505 t
. text
"comment" , default
: "" , null
: false
508 create_table
"list_accounts" , force
: :cascade do | t
|
509 t
. bigint
"list_id" , null
: false
510 t
. bigint
"account_id" , null
: false
512 t
. index
[ "account_id" , "list_id" ], name
: "index_list_accounts_on_account_id_and_list_id" , unique
: true
513 t
. index
[ "follow_id" ], name
: "index_list_accounts_on_follow_id"
514 t
. index
[ "list_id" , "account_id" ], name
: "index_list_accounts_on_list_id_and_account_id"
517 create_table
"lists" , force
: :cascade do | t
|
518 t
. bigint
"account_id" , null
: false
519 t
. string
"title" , default
: "" , null
: false
520 t
. datetime
"created_at" , null
: false
521 t
. datetime
"updated_at" , null
: false
522 t
. integer
"replies_policy" , default
: 0 , null
: false
523 t
. index
[ "account_id" ], name
: "index_lists_on_account_id"
526 create_table
"login_activities" , force
: :cascade do | t
|
527 t
. bigint
"user_id" , null
: false
528 t
. string
"authentication_method"
531 t
. string
"failure_reason"
533 t
. string
"user_agent"
534 t
. datetime
"created_at"
535 t
. index
[ "user_id" ], name
: "index_login_activities_on_user_id"
538 create_table
"markers" , force
: :cascade do | t
|
540 t
. string
"timeline" , default
: "" , null
: false
541 t
. bigint
"last_read_id" , default
: 0 , null
: false
542 t
. integer
"lock_version" , default
: 0 , null
: false
543 t
. datetime
"created_at" , null
: false
544 t
. datetime
"updated_at" , null
: false
545 t
. index
[ "user_id" , "timeline" ], name
: "index_markers_on_user_id_and_timeline" , unique
: true
548 create_table
"media_attachments" , id
: :bigint , default
: -> { "timestamp_id('media_attachments'::text)" }, force
: :cascade do | t
|
550 t
. string
"file_file_name"
551 t
. string
"file_content_type"
552 t
. integer
"file_file_size"
553 t
. datetime
"file_updated_at"
554 t
. string
"remote_url" , default
: "" , null
: false
555 t
. datetime
"created_at" , null
: false
556 t
. datetime
"updated_at" , null
: false
558 t
. integer
"type" , default
: 0 , null
: false
560 t
. bigint
"account_id"
562 t
. bigint
"scheduled_status_id"
564 t
. integer
"processing"
565 t
. integer
"file_storage_schema_version"
566 t
. string
"thumbnail_file_name"
567 t
. string
"thumbnail_content_type"
568 t
. integer
"thumbnail_file_size"
569 t
. datetime
"thumbnail_updated_at"
570 t
. string
"thumbnail_remote_url"
571 t
. index
[ "account_id" , "status_id" ], name
: "index_media_attachments_on_account_id_and_status_id" , order
: { status_id
: :desc }
572 t
. index
[ "scheduled_status_id" ], name
: "index_media_attachments_on_scheduled_status_id"
573 t
. index
[ "shortcode" ], name
: "index_media_attachments_on_shortcode" , unique
: true
574 t
. index
[ "status_id" ], name
: "index_media_attachments_on_status_id"
577 create_table
"mentions" , force
: :cascade do | t
|
579 t
. datetime
"created_at" , null
: false
580 t
. datetime
"updated_at" , null
: false
581 t
. bigint
"account_id"
582 t
. boolean
"silent" , default
: false , null
: false
583 t
. index
[ "account_id" , "status_id" ], name
: "index_mentions_on_account_id_and_status_id" , unique
: true
584 t
. index
[ "status_id" ], name
: "index_mentions_on_status_id"
587 create_table
"mutes" , force
: :cascade do | t
|
588 t
. datetime
"created_at" , null
: false
589 t
. datetime
"updated_at" , null
: false
590 t
. boolean
"hide_notifications" , default
: true , null
: false
591 t
. bigint
"account_id" , null
: false
592 t
. bigint
"target_account_id" , null
: false
593 t
. datetime
"expires_at"
594 t
. index
[ "account_id" , "target_account_id" ], name
: "index_mutes_on_account_id_and_target_account_id" , unique
: true
595 t
. index
[ "target_account_id" ], name
: "index_mutes_on_target_account_id"
598 create_table
"notifications" , force
: :cascade do | t
|
599 t
. bigint
"activity_id" , null
: false
600 t
. string
"activity_type" , null
: false
601 t
. datetime
"created_at" , null
: false
602 t
. datetime
"updated_at" , null
: false
603 t
. bigint
"account_id" , null
: false
604 t
. bigint
"from_account_id" , null
: false
606 t
. index
[ "account_id" , "id" , "type" ], name
: "index_notifications_on_account_id_and_id_and_type" , order
: { id
: :desc }
607 t
. index
[ "activity_id" , "activity_type" ], name
: "index_notifications_on_activity_id_and_activity_type"
608 t
. index
[ "from_account_id" ], name
: "index_notifications_on_from_account_id"
611 create_table
"oauth_access_grants" , force
: :cascade do | t
|
612 t
. string
"token" , null
: false
613 t
. integer
"expires_in" , null
: false
614 t
. text
"redirect_uri" , null
: false
615 t
. datetime
"created_at" , null
: false
616 t
. datetime
"revoked_at"
618 t
. bigint
"application_id" , null
: false
619 t
. bigint
"resource_owner_id" , null
: false
620 t
. index
[ "resource_owner_id" ], name
: "index_oauth_access_grants_on_resource_owner_id"
621 t
. index
[ "token" ], name
: "index_oauth_access_grants_on_token" , unique
: true
624 create_table
"oauth_access_tokens" , force
: :cascade do | t
|
625 t
. string
"token" , null
: false
626 t
. string
"refresh_token"
627 t
. integer
"expires_in"
628 t
. datetime
"revoked_at"
629 t
. datetime
"created_at" , null
: false
631 t
. bigint
"application_id"
632 t
. bigint
"resource_owner_id"
633 t
. index
[ "refresh_token" ], name
: "index_oauth_access_tokens_on_refresh_token" , unique
: true
634 t
. index
[ "resource_owner_id" ], name
: "index_oauth_access_tokens_on_resource_owner_id"
635 t
. index
[ "token" ], name
: "index_oauth_access_tokens_on_token" , unique
: true
638 create_table
"oauth_applications" , force
: :cascade do | t
|
639 t
. string
"name" , null
: false
640 t
. string
"uid" , null
: false
641 t
. string
"secret" , null
: false
642 t
. text
"redirect_uri" , null
: false
643 t
. string
"scopes" , default
: "" , null
: false
644 t
. datetime
"created_at"
645 t
. datetime
"updated_at"
646 t
. boolean
"superapp" , default
: false , null
: false
648 t
. string
"owner_type"
650 t
. boolean
"confidential" , default
: true , null
: false
651 t
. index
[ "owner_id" , "owner_type" ], name
: "index_oauth_applications_on_owner_id_and_owner_type"
652 t
. index
[ "uid" ], name
: "index_oauth_applications_on_uid" , unique
: true
655 create_table
"one_time_keys" , force
: :cascade do | t
|
657 t
. string
"key_id" , default
: "" , null
: false
658 t
. text
"key" , default
: "" , null
: false
659 t
. text
"signature" , default
: "" , null
: false
660 t
. datetime
"created_at" , null
: false
661 t
. datetime
"updated_at" , null
: false
662 t
. index
[ "device_id" ], name
: "index_one_time_keys_on_device_id"
663 t
. index
[ "key_id" ], name
: "index_one_time_keys_on_key_id"
666 create_table
"pghero_space_stats" , force
: :cascade do | t
|
671 t
. datetime
"captured_at"
672 t
. index
[ "database" , "captured_at" ], name
: "index_pghero_space_stats_on_database_and_captured_at"
675 create_table
"poll_votes" , force
: :cascade do | t
|
676 t
. bigint
"account_id"
678 t
. integer
"choice" , default
: 0 , null
: false
679 t
. datetime
"created_at" , null
: false
680 t
. datetime
"updated_at" , null
: false
682 t
. index
[ "account_id" ], name
: "index_poll_votes_on_account_id"
683 t
. index
[ "poll_id" ], name
: "index_poll_votes_on_poll_id"
686 create_table
"polls" , force
: :cascade do | t
|
687 t
. bigint
"account_id"
689 t
. datetime
"expires_at"
690 t
. string
"options" , default
: [], null
: false , array
: true
691 t
. bigint
"cached_tallies" , default
: [], null
: false , array
: true
692 t
. boolean
"multiple" , default
: false , null
: false
693 t
. boolean
"hide_totals" , default
: false , null
: false
694 t
. bigint
"votes_count" , default
: 0 , null
: false
695 t
. datetime
"last_fetched_at"
696 t
. datetime
"created_at" , null
: false
697 t
. datetime
"updated_at" , null
: false
698 t
. integer
"lock_version" , default
: 0 , null
: false
699 t
. bigint
"voters_count"
700 t
. index
[ "account_id" ], name
: "index_polls_on_account_id"
701 t
. index
[ "status_id" ], name
: "index_polls_on_status_id"
704 create_table
"preview_card_providers" , force
: :cascade do | t
|
705 t
. string
"domain" , default
: "" , null
: false
706 t
. string
"icon_file_name"
707 t
. string
"icon_content_type"
708 t
. bigint
"icon_file_size"
709 t
. datetime
"icon_updated_at"
710 t
. boolean
"trendable"
711 t
. datetime
"reviewed_at"
712 t
. datetime
"requested_review_at"
713 t
. datetime
"created_at" , precision
: 6 , null
: false
714 t
. datetime
"updated_at" , precision
: 6 , null
: false
715 t
. index
[ "domain" ], name
: "index_preview_card_providers_on_domain" , unique
: true
718 create_table
"preview_cards" , force
: :cascade do | t
|
719 t
. string
"url" , default
: "" , null
: false
720 t
. string
"title" , default
: "" , null
: false
721 t
. string
"description" , default
: "" , null
: false
722 t
. string
"image_file_name"
723 t
. string
"image_content_type"
724 t
. integer
"image_file_size"
725 t
. datetime
"image_updated_at"
726 t
. integer
"type" , default
: 0 , null
: false
727 t
. text
"html" , default
: "" , null
: false
728 t
. string
"author_name" , default
: "" , null
: false
729 t
. string
"author_url" , default
: "" , null
: false
730 t
. string
"provider_name" , default
: "" , null
: false
731 t
. string
"provider_url" , default
: "" , null
: false
732 t
. integer
"width" , default
: 0 , null
: false
733 t
. integer
"height" , default
: 0 , null
: false
734 t
. datetime
"created_at" , null
: false
735 t
. datetime
"updated_at" , null
: false
736 t
. string
"embed_url" , default
: "" , null
: false
737 t
. integer
"image_storage_schema_version"
741 t
. datetime
"max_score_at"
742 t
. boolean
"trendable"
743 t
. integer
"link_type"
744 t
. index
[ "url" ], name
: "index_preview_cards_on_url" , unique
: true
747 create_table
"preview_cards_statuses" , id
: false , force
: :cascade do | t
|
748 t
. bigint
"preview_card_id" , null
: false
749 t
. bigint
"status_id" , null
: false
750 t
. index
[ "status_id" , "preview_card_id" ], name
: "index_preview_cards_statuses_on_status_id_and_preview_card_id"
753 create_table
"relays" , force
: :cascade do | t
|
754 t
. string
"inbox_url" , default
: "" , null
: false
755 t
. string
"follow_activity_id"
756 t
. datetime
"created_at" , null
: false
757 t
. datetime
"updated_at" , null
: false
758 t
. integer
"state" , default
: 0 , null
: false
761 create_table
"report_notes" , force
: :cascade do | t
|
762 t
. text
"content" , null
: false
763 t
. bigint
"report_id" , null
: false
764 t
. bigint
"account_id" , null
: false
765 t
. datetime
"created_at" , null
: false
766 t
. datetime
"updated_at" , null
: false
767 t
. index
[ "account_id" ], name
: "index_report_notes_on_account_id"
768 t
. index
[ "report_id" ], name
: "index_report_notes_on_report_id"
771 create_table
"reports" , force
: :cascade do | t
|
772 t
. bigint
"status_ids" , default
: [], null
: false , array
: true
773 t
. text
"comment" , default
: "" , null
: false
774 t
. datetime
"created_at" , null
: false
775 t
. datetime
"updated_at" , null
: false
776 t
. bigint
"account_id" , null
: false
777 t
. bigint
"action_taken_by_account_id"
778 t
. bigint
"target_account_id" , null
: false
779 t
. bigint
"assigned_account_id"
781 t
. boolean
"forwarded"
782 t
. integer
"category" , default
: 0 , null
: false
783 t
. datetime
"action_taken_at"
784 t
. bigint
"rule_ids" , array
: true
785 t
. index
[ "account_id" ], name
: "index_reports_on_account_id"
786 t
. index
[ "target_account_id" ], name
: "index_reports_on_target_account_id"
789 create_table
"rules" , force
: :cascade do | t
|
790 t
. integer
"priority" , default
: 0 , null
: false
791 t
. datetime
"deleted_at"
792 t
. text
"text" , default
: "" , null
: false
793 t
. datetime
"created_at" , null
: false
794 t
. datetime
"updated_at" , null
: false
797 create_table
"scheduled_statuses" , force
: :cascade do | t
|
798 t
. bigint
"account_id"
799 t
. datetime
"scheduled_at"
801 t
. index
[ "account_id" ], name
: "index_scheduled_statuses_on_account_id"
802 t
. index
[ "scheduled_at" ], name
: "index_scheduled_statuses_on_scheduled_at"
805 create_table
"session_activations" , force
: :cascade do | t
|
806 t
. string
"session_id" , null
: false
807 t
. datetime
"created_at" , null
: false
808 t
. datetime
"updated_at" , null
: false
809 t
. string
"user_agent" , default
: "" , null
: false
811 t
. bigint
"access_token_id"
812 t
. bigint
"user_id" , null
: false
813 t
. bigint
"web_push_subscription_id"
814 t
. index
[ "access_token_id" ], name
: "index_session_activations_on_access_token_id"
815 t
. index
[ "session_id" ], name
: "index_session_activations_on_session_id" , unique
: true
816 t
. index
[ "user_id" ], name
: "index_session_activations_on_user_id"
819 create_table
"settings" , force
: :cascade do | t
|
820 t
. string
"var" , null
: false
822 t
. string
"thing_type"
823 t
. datetime
"created_at"
824 t
. datetime
"updated_at"
826 t
. index
[ "thing_type" , "thing_id" , "var" ], name
: "index_settings_on_thing_type_and_thing_id_and_var" , unique
: true
829 create_table
"site_uploads" , force
: :cascade do | t
|
830 t
. string
"var" , default
: "" , null
: false
831 t
. string
"file_file_name"
832 t
. string
"file_content_type"
833 t
. integer
"file_file_size"
834 t
. datetime
"file_updated_at"
836 t
. datetime
"created_at" , null
: false
837 t
. datetime
"updated_at" , null
: false
838 t
. index
[ "var" ], name
: "index_site_uploads_on_var" , unique
: true
841 create_table
"status_edits" , force
: :cascade do | t
|
842 t
. bigint
"status_id" , null
: false
843 t
. bigint
"account_id"
844 t
. text
"text" , default
: "" , null
: false
845 t
. text
"spoiler_text" , default
: "" , null
: false
846 t
. boolean
"media_attachments_changed" , default
: false , null
: false
847 t
. datetime
"created_at" , precision
: 6 , null
: false
848 t
. datetime
"updated_at" , precision
: 6 , null
: false
849 t
. string
"content_type"
850 t
. index
[ "account_id" ], name
: "index_status_edits_on_account_id"
851 t
. index
[ "status_id" ], name
: "index_status_edits_on_status_id"
854 create_table
"status_pins" , force
: :cascade do | t
|
855 t
. bigint
"account_id" , null
: false
856 t
. bigint
"status_id" , null
: false
857 t
. datetime
"created_at" , default
: -> { "now()" }, null
: false
858 t
. datetime
"updated_at" , default
: -> { "now()" }, null
: false
859 t
. index
[ "account_id" , "status_id" ], name
: "index_status_pins_on_account_id_and_status_id" , unique
: true
862 create_table
"status_stats" , force
: :cascade do | t
|
863 t
. bigint
"status_id" , null
: false
864 t
. bigint
"replies_count" , default
: 0 , null
: false
865 t
. bigint
"reblogs_count" , default
: 0 , null
: false
866 t
. bigint
"favourites_count" , default
: 0 , null
: false
867 t
. datetime
"created_at" , null
: false
868 t
. datetime
"updated_at" , null
: false
869 t
. index
[ "status_id" ], name
: "index_status_stats_on_status_id" , unique
: true
872 create_table
"statuses" , id
: :bigint , default
: -> { "timestamp_id('statuses'::text)" }, force
: :cascade do | t
|
874 t
. text
"text" , default
: "" , null
: false
875 t
. datetime
"created_at" , null
: false
876 t
. datetime
"updated_at" , null
: false
877 t
. bigint
"in_reply_to_id"
878 t
. bigint
"reblog_of_id"
880 t
. boolean
"sensitive" , default
: false , null
: false
881 t
. integer
"visibility" , default
: 0 , null
: false
882 t
. text
"spoiler_text" , default
: "" , null
: false
883 t
. boolean
"reply" , default
: false , null
: false
885 t
. bigint
"conversation_id"
887 t
. bigint
"account_id" , null
: false
888 t
. bigint
"application_id"
889 t
. bigint
"in_reply_to_account_id"
890 t
. boolean
"local_only"
892 t
. string
"content_type"
893 t
. datetime
"deleted_at"
894 t
. datetime
"edited_at"
895 t
. boolean
"trendable"
896 t
. index
[ "account_id" , "id" , "visibility" , "updated_at" ], name
: "index_statuses_20190820" , order
: { id
: :desc }, where
: "(deleted_at IS NULL)"
897 t
. index
[ "deleted_at" ], name
: "index_statuses_on_deleted_at" , where
: "(deleted_at IS NOT NULL)"
898 t
. index
[ "id" , "account_id" ], name
: "index_statuses_local_20190824" , order
: { id
: :desc }, where
: "((local OR (uri IS NULL)) AND (deleted_at IS NULL) AND (visibility = 0) AND (reblog_of_id IS NULL) AND ((NOT reply) OR (in_reply_to_account_id = account_id)))"
899 t
. index
[ "id" , "account_id" ], name
: "index_statuses_public_20200119" , order
: { id
: :desc }, where
: "((deleted_at IS NULL) AND (visibility = 0) AND (reblog_of_id IS NULL) AND ((NOT reply) OR (in_reply_to_account_id = account_id)))"
900 t
. index
[ "in_reply_to_account_id" ], name
: "index_statuses_on_in_reply_to_account_id"
901 t
. index
[ "in_reply_to_id" ], name
: "index_statuses_on_in_reply_to_id"
902 t
. index
[ "reblog_of_id" , "account_id" ], name
: "index_statuses_on_reblog_of_id_and_account_id"
903 t
. index
[ "uri" ], name
: "index_statuses_on_uri" , unique
: true
906 create_table
"statuses_tags" , id
: false , force
: :cascade do | t
|
907 t
. bigint
"status_id" , null
: false
908 t
. bigint
"tag_id" , null
: false
909 t
. index
[ "status_id" ], name
: "index_statuses_tags_on_status_id"
910 t
. index
[ "tag_id" , "status_id" ], name
: "index_statuses_tags_on_tag_id_and_status_id" , unique
: true
913 create_table
"system_keys" , force
: :cascade do | t
|
915 t
. datetime
"created_at" , null
: false
916 t
. datetime
"updated_at" , null
: false
919 create_table
"tags" , force
: :cascade do | t
|
920 t
. string
"name" , default
: "" , null
: false
921 t
. datetime
"created_at" , null
: false
922 t
. datetime
"updated_at" , null
: false
924 t
. boolean
"trendable"
926 t
. datetime
"reviewed_at"
927 t
. datetime
"requested_review_at"
928 t
. datetime
"last_status_at"
930 t
. datetime
"max_score_at"
931 t
. index
"lower((name)::text) text_pattern_ops" , name
: "index_tags_on_name_lower_btree" , unique
: true
934 create_table
"tombstones" , force
: :cascade do | t
|
935 t
. bigint
"account_id"
936 t
. string
"uri" , null
: false
937 t
. datetime
"created_at" , null
: false
938 t
. datetime
"updated_at" , null
: false
939 t
. boolean
"by_moderator"
940 t
. index
[ "account_id" ], name
: "index_tombstones_on_account_id"
941 t
. index
[ "uri" ], name
: "index_tombstones_on_uri"
944 create_table
"unavailable_domains" , force
: :cascade do | t
|
945 t
. string
"domain" , default
: "" , null
: false
946 t
. datetime
"created_at" , null
: false
947 t
. datetime
"updated_at" , null
: false
948 t
. index
[ "domain" ], name
: "index_unavailable_domains_on_domain" , unique
: true
951 create_table
"user_invite_requests" , force
: :cascade do | t
|
954 t
. datetime
"created_at" , null
: false
955 t
. datetime
"updated_at" , null
: false
956 t
. index
[ "user_id" ], name
: "index_user_invite_requests_on_user_id"
959 create_table
"users" , force
: :cascade do | t
|
960 t
. string
"email" , default
: "" , null
: false
961 t
. datetime
"created_at" , null
: false
962 t
. datetime
"updated_at" , null
: false
963 t
. string
"encrypted_password" , default
: "" , null
: false
964 t
. string
"reset_password_token"
965 t
. datetime
"reset_password_sent_at"
966 t
. integer
"sign_in_count" , default
: 0 , null
: false
967 t
. datetime
"current_sign_in_at"
968 t
. datetime
"last_sign_in_at"
969 t
. boolean
"admin" , default
: false , null
: false
970 t
. string
"confirmation_token"
971 t
. datetime
"confirmed_at"
972 t
. datetime
"confirmation_sent_at"
973 t
. string
"unconfirmed_email"
975 t
. string
"encrypted_otp_secret"
976 t
. string
"encrypted_otp_secret_iv"
977 t
. string
"encrypted_otp_secret_salt"
978 t
. integer
"consumed_timestep"
979 t
. boolean
"otp_required_for_login" , default
: false , null
: false
980 t
. datetime
"last_emailed_at"
981 t
. string
"otp_backup_codes" , array
: true
982 t
. string
"filtered_languages" , default
: [], null
: false , array
: true
983 t
. bigint
"account_id" , null
: false
984 t
. boolean
"disabled" , default
: false , null
: false
985 t
. boolean
"moderator" , default
: false , null
: false
987 t
. string
"chosen_languages" , array
: true
988 t
. bigint
"created_by_application_id"
989 t
. boolean
"approved" , default
: true , null
: false
990 t
. string
"sign_in_token"
991 t
. datetime
"sign_in_token_sent_at"
992 t
. string
"webauthn_id"
994 t
. boolean
"skip_sign_in_token"
995 t
. index
[ "account_id" ], name
: "index_users_on_account_id"
996 t
. index
[ "confirmation_token" ], name
: "index_users_on_confirmation_token" , unique
: true
997 t
. index
[ "created_by_application_id" ], name
: "index_users_on_created_by_application_id"
998 t
. index
[ "email" ], name
: "index_users_on_email" , unique
: true
999 t
. index
[ "reset_password_token" ], name
: "index_users_on_reset_password_token" , unique
: true
1002 create_table
"web_push_subscriptions" , force
: :cascade do | t
|
1003 t
. string
"endpoint" , null
: false
1004 t
. string
"key_p256dh" , null
: false
1005 t
. string
"key_auth" , null
: false
1007 t
. datetime
"created_at" , null
: false
1008 t
. datetime
"updated_at" , null
: false
1009 t
. bigint
"access_token_id"
1011 t
. index
[ "access_token_id" ], name
: "index_web_push_subscriptions_on_access_token_id"
1012 t
. index
[ "user_id" ], name
: "index_web_push_subscriptions_on_user_id"
1015 create_table
"web_settings" , force
: :cascade do | t
|
1017 t
. datetime
"created_at" , null
: false
1018 t
. datetime
"updated_at" , null
: false
1019 t
. bigint
"user_id" , null
: false
1020 t
. index
[ "user_id" ], name
: "index_web_settings_on_user_id" , unique
: true
1023 create_table
"webauthn_credentials" , force
: :cascade do | t
|
1024 t
. string
"external_id" , null
: false
1025 t
. string
"public_key" , null
: false
1026 t
. string
"nickname" , null
: false
1027 t
. bigint
"sign_count" , default
: 0 , null
: false
1029 t
. datetime
"created_at" , null
: false
1030 t
. datetime
"updated_at" , null
: false
1031 t
. index
[ "external_id" ], name
: "index_webauthn_credentials_on_external_id" , unique
: true
1032 t
. index
[ "user_id" ], name
: "index_webauthn_credentials_on_user_id"
1035 add_foreign_key
"account_aliases" , "accounts" , on_delete
: :cascade
1036 add_foreign_key
"account_conversations" , "accounts" , on_delete
: :cascade
1037 add_foreign_key
"account_conversations" , "conversations" , on_delete
: :cascade
1038 add_foreign_key
"account_deletion_requests" , "accounts" , on_delete
: :cascade
1039 add_foreign_key
"account_domain_blocks" , "accounts" , name
: "fk_206c6029bd" , on_delete
: :cascade
1040 add_foreign_key
"account_migrations" , "accounts" , column
: "target_account_id" , on_delete
: :nullify
1041 add_foreign_key
"account_migrations" , "accounts" , on_delete
: :cascade
1042 add_foreign_key
"account_moderation_notes" , "accounts"
1043 add_foreign_key
"account_moderation_notes" , "accounts" , column
: "target_account_id"
1044 add_foreign_key
"account_notes" , "accounts" , column
: "target_account_id" , on_delete
: :cascade
1045 add_foreign_key
"account_notes" , "accounts" , on_delete
: :cascade
1046 add_foreign_key
"account_pins" , "accounts" , column
: "target_account_id" , on_delete
: :cascade
1047 add_foreign_key
"account_pins" , "accounts" , on_delete
: :cascade
1048 add_foreign_key
"account_stats" , "accounts" , on_delete
: :cascade
1049 add_foreign_key
"account_statuses_cleanup_policies" , "accounts" , on_delete
: :cascade
1050 add_foreign_key
"account_warnings" , "accounts" , column
: "target_account_id" , on_delete
: :cascade
1051 add_foreign_key
"account_warnings" , "accounts" , on_delete
: :nullify
1052 add_foreign_key
"account_warnings" , "reports" , on_delete
: :cascade
1053 add_foreign_key
"accounts" , "accounts" , column
: "moved_to_account_id" , on_delete
: :nullify
1054 add_foreign_key
"admin_action_logs" , "accounts" , on_delete
: :cascade
1055 add_foreign_key
"announcement_mutes" , "accounts" , on_delete
: :cascade
1056 add_foreign_key
"announcement_mutes" , "announcements" , on_delete
: :cascade
1057 add_foreign_key
"announcement_reactions" , "accounts" , on_delete
: :cascade
1058 add_foreign_key
"announcement_reactions" , "announcements" , on_delete
: :cascade
1059 add_foreign_key
"announcement_reactions" , "custom_emojis" , on_delete
: :cascade
1060 add_foreign_key
"appeals" , "account_warnings" , on_delete
: :cascade
1061 add_foreign_key
"appeals" , "accounts" , column
: "approved_by_account_id" , on_delete
: :nullify
1062 add_foreign_key
"appeals" , "accounts" , column
: "rejected_by_account_id" , on_delete
: :nullify
1063 add_foreign_key
"appeals" , "accounts" , on_delete
: :cascade
1064 add_foreign_key
"backups" , "users" , on_delete
: :nullify
1065 add_foreign_key
"blocks" , "accounts" , column
: "target_account_id" , name
: "fk_9571bfabc1" , on_delete
: :cascade
1066 add_foreign_key
"blocks" , "accounts" , name
: "fk_4269e03e65" , on_delete
: :cascade
1067 add_foreign_key
"bookmarks" , "accounts" , on_delete
: :cascade
1068 add_foreign_key
"bookmarks" , "statuses" , on_delete
: :cascade
1069 add_foreign_key
"canonical_email_blocks" , "accounts" , column
: "reference_account_id" , on_delete
: :cascade
1070 add_foreign_key
"conversation_mutes" , "accounts" , name
: "fk_225b4212bb" , on_delete
: :cascade
1071 add_foreign_key
"conversation_mutes" , "conversations" , on_delete
: :cascade
1072 add_foreign_key
"custom_filters" , "accounts" , on_delete
: :cascade
1073 add_foreign_key
"devices" , "accounts" , on_delete
: :cascade
1074 add_foreign_key
"devices" , "oauth_access_tokens" , column
: "access_token_id" , on_delete
: :cascade
1075 add_foreign_key
"email_domain_blocks" , "email_domain_blocks" , column
: "parent_id" , on_delete
: :cascade
1076 add_foreign_key
"encrypted_messages" , "accounts" , column
: "from_account_id" , on_delete
: :cascade
1077 add_foreign_key
"encrypted_messages" , "devices" , on_delete
: :cascade
1078 add_foreign_key
"favourites" , "accounts" , name
: "fk_5eb6c2b873" , on_delete
: :cascade
1079 add_foreign_key
"favourites" , "statuses" , name
: "fk_b0e856845e" , on_delete
: :cascade
1080 add_foreign_key
"featured_tags" , "accounts" , on_delete
: :cascade
1081 add_foreign_key
"featured_tags" , "tags" , on_delete
: :cascade
1082 add_foreign_key
"follow_recommendation_suppressions" , "accounts" , on_delete
: :cascade
1083 add_foreign_key
"follow_requests" , "accounts" , column
: "target_account_id" , name
: "fk_9291ec025d" , on_delete
: :cascade
1084 add_foreign_key
"follow_requests" , "accounts" , name
: "fk_76d644b0e7" , on_delete
: :cascade
1085 add_foreign_key
"follows" , "accounts" , column
: "target_account_id" , name
: "fk_745ca29eac" , on_delete
: :cascade
1086 add_foreign_key
"follows" , "accounts" , name
: "fk_32ed1b5560" , on_delete
: :cascade
1087 add_foreign_key
"identities" , "users" , name
: "fk_bea040f377" , on_delete
: :cascade
1088 add_foreign_key
"imports" , "accounts" , name
: "fk_6db1b6e408" , on_delete
: :cascade
1089 add_foreign_key
"invites" , "users" , on_delete
: :cascade
1090 add_foreign_key
"list_accounts" , "accounts" , on_delete
: :cascade
1091 add_foreign_key
"list_accounts" , "follows" , on_delete
: :cascade
1092 add_foreign_key
"list_accounts" , "lists" , on_delete
: :cascade
1093 add_foreign_key
"lists" , "accounts" , on_delete
: :cascade
1094 add_foreign_key
"login_activities" , "users" , on_delete
: :cascade
1095 add_foreign_key
"markers" , "users" , on_delete
: :cascade
1096 add_foreign_key
"media_attachments" , "accounts" , name
: "fk_96dd81e81b" , on_delete
: :nullify
1097 add_foreign_key
"media_attachments" , "scheduled_statuses" , on_delete
: :nullify
1098 add_foreign_key
"media_attachments" , "statuses" , on_delete
: :nullify
1099 add_foreign_key
"mentions" , "accounts" , name
: "fk_970d43f9d1" , on_delete
: :cascade
1100 add_foreign_key
"mentions" , "statuses" , on_delete
: :cascade
1101 add_foreign_key
"mutes" , "accounts" , column
: "target_account_id" , name
: "fk_eecff219ea" , on_delete
: :cascade
1102 add_foreign_key
"mutes" , "accounts" , name
: "fk_b8d8daf315" , on_delete
: :cascade
1103 add_foreign_key
"notifications" , "accounts" , column
: "from_account_id" , name
: "fk_fbd6b0bf9e" , on_delete
: :cascade
1104 add_foreign_key
"notifications" , "accounts" , name
: "fk_c141c8ee55" , on_delete
: :cascade
1105 add_foreign_key
"oauth_access_grants" , "oauth_applications" , column
: "application_id" , name
: "fk_34d54b0a33" , on_delete
: :cascade
1106 add_foreign_key
"oauth_access_grants" , "users" , column
: "resource_owner_id" , name
: "fk_63b044929b" , on_delete
: :cascade
1107 add_foreign_key
"oauth_access_tokens" , "oauth_applications" , column
: "application_id" , name
: "fk_f5fc4c1ee3" , on_delete
: :cascade
1108 add_foreign_key
"oauth_access_tokens" , "users" , column
: "resource_owner_id" , name
: "fk_e84df68546" , on_delete
: :cascade
1109 add_foreign_key
"oauth_applications" , "users" , column
: "owner_id" , name
: "fk_b0988c7c0a" , on_delete
: :cascade
1110 add_foreign_key
"one_time_keys" , "devices" , on_delete
: :cascade
1111 add_foreign_key
"poll_votes" , "accounts" , on_delete
: :cascade
1112 add_foreign_key
"poll_votes" , "polls" , on_delete
: :cascade
1113 add_foreign_key
"polls" , "accounts" , on_delete
: :cascade
1114 add_foreign_key
"polls" , "statuses" , on_delete
: :cascade
1115 add_foreign_key
"report_notes" , "accounts" , on_delete
: :cascade
1116 add_foreign_key
"report_notes" , "reports" , on_delete
: :cascade
1117 add_foreign_key
"reports" , "accounts" , column
: "action_taken_by_account_id" , name
: "fk_bca45b75fd" , on_delete
: :nullify
1118 add_foreign_key
"reports" , "accounts" , column
: "assigned_account_id" , on_delete
: :nullify
1119 add_foreign_key
"reports" , "accounts" , column
: "target_account_id" , name
: "fk_eb37af34f0" , on_delete
: :cascade
1120 add_foreign_key
"reports" , "accounts" , name
: "fk_4b81f7522c" , on_delete
: :cascade
1121 add_foreign_key
"scheduled_statuses" , "accounts" , on_delete
: :cascade
1122 add_foreign_key
"session_activations" , "oauth_access_tokens" , column
: "access_token_id" , name
: "fk_957e5bda89" , on_delete
: :cascade
1123 add_foreign_key
"session_activations" , "users" , name
: "fk_e5fda67334" , on_delete
: :cascade
1124 add_foreign_key
"status_edits" , "accounts" , on_delete
: :nullify
1125 add_foreign_key
"status_edits" , "statuses" , on_delete
: :cascade
1126 add_foreign_key
"status_pins" , "accounts" , name
: "fk_d4cb435b62" , on_delete
: :cascade
1127 add_foreign_key
"status_pins" , "statuses" , on_delete
: :cascade
1128 add_foreign_key
"status_stats" , "statuses" , on_delete
: :cascade
1129 add_foreign_key
"statuses" , "accounts" , column
: "in_reply_to_account_id" , name
: "fk_c7fa917661" , on_delete
: :nullify
1130 add_foreign_key
"statuses" , "accounts" , name
: "fk_9bda1543f7" , on_delete
: :cascade
1131 add_foreign_key
"statuses" , "statuses" , column
: "in_reply_to_id" , on_delete
: :nullify
1132 add_foreign_key
"statuses" , "statuses" , column
: "reblog_of_id" , on_delete
: :cascade
1133 add_foreign_key
"statuses_tags" , "statuses" , on_delete
: :cascade
1134 add_foreign_key
"statuses_tags" , "tags" , name
: "fk_3081861e21" , on_delete
: :cascade
1135 add_foreign_key
"tombstones" , "accounts" , on_delete
: :cascade
1136 add_foreign_key
"user_invite_requests" , "users" , on_delete
: :cascade
1137 add_foreign_key
"users" , "accounts" , name
: "fk_50500f500d" , on_delete
: :cascade
1138 add_foreign_key
"users" , "invites" , on_delete
: :nullify
1139 add_foreign_key
"users" , "oauth_applications" , column
: "created_by_application_id" , on_delete
: :nullify
1140 add_foreign_key
"web_push_subscriptions" , "oauth_access_tokens" , column
: "access_token_id" , on_delete
: :cascade
1141 add_foreign_key
"web_push_subscriptions" , "users" , on_delete
: :cascade
1142 add_foreign_key
"web_settings" , "users" , name
: "fk_11910667b2" , on_delete
: :cascade
1143 add_foreign_key
"webauthn_credentials" , "users"
1145 create_view
"instances" , materialized
: true , sql_definition
: <<-SQL
1146 WITH domain_counts(domain, accounts_count) AS (
1147 SELECT accounts.domain,
1148 count(*) AS accounts_count
1150 WHERE (accounts.domain IS NOT NULL)
1151 GROUP BY accounts.domain
1153 SELECT domain_counts.domain,
1154 domain_counts.accounts_count
1157 SELECT domain_blocks.domain,
1158 COALESCE(domain_counts.accounts_count, (0)::bigint) AS accounts_count
1160 LEFT JOIN domain_counts ON (((domain_counts.domain)::text = (domain_blocks.domain)::text)))
1162 SELECT domain_allows.domain,
1163 COALESCE(domain_counts.accounts_count, (0)::bigint) AS accounts_count
1165 LEFT JOIN domain_counts ON (((domain_counts.domain)::text = (domain_allows.domain)::text)));
1167 add_index
"instances" , [ "domain" ], name
: "index_instances_on_domain" , unique
: true
1169 create_view
"user_ips" , sql_definition
: <<-SQL
1172 max(t0.used_at) AS used_at
1173 FROM ( SELECT users.id AS user_id,
1174 users.sign_up_ip AS ip,
1175 users.created_at AS used_at
1177 WHERE (users.sign_up_ip IS NOT NULL)
1179 SELECT session_activations.user_id,
1180 session_activations.ip,
1181 session_activations.updated_at
1182 FROM session_activations
1184 SELECT login_activities.user_id,
1185 login_activities.ip,
1186 login_activities.created_at
1187 FROM login_activities
1188 WHERE (login_activities.success = true)) t0
1189 GROUP BY t0.user_id, t0.ip;
1191 create_view
"account_summaries" , materialized
: true , sql_definition
: <<-SQL
1192 SELECT accounts.id AS account_id,
1193 mode() WITHIN GROUP (ORDER BY t0.language) AS language,
1194 mode() WITHIN GROUP (ORDER BY t0.sensitive) AS sensitive
1196 CROSS JOIN LATERAL ( SELECT statuses.account_id,
1200 WHERE ((statuses.account_id = accounts.id) AND (statuses.deleted_at IS NULL) AND (statuses.reblog_of_id IS NULL))
1201 ORDER BY statuses.id DESC
1203 WHERE ((accounts.suspended_at IS NULL) AND (accounts.silenced_at IS NULL) AND (accounts.moved_to_account_id IS NULL) AND (accounts.discoverable = true) AND (accounts.locked = false))
1204 GROUP BY accounts.id;
1206 add_index
"account_summaries" , [ "account_id" ], name
: "index_account_summaries_on_account_id" , unique
: true
1208 create_view
"follow_recommendations" , materialized
: true , sql_definition
: <<-SQL
1209 SELECT t0.account_id,
1210 sum(t0.rank) AS rank,
1211 array_agg(t0.reason) AS reason
1212 FROM ( SELECT account_summaries.account_id,
1213 ((count(follows.id))::numeric / (1.0 + (count(follows.id))::numeric)) AS rank,
1214 'most_followed'::text AS reason
1216 JOIN account_summaries ON ((account_summaries.account_id = follows.target_account_id)))
1217 JOIN users ON ((users.account_id = follows.account_id)))
1218 LEFT JOIN follow_recommendation_suppressions ON ((follow_recommendation_suppressions.account_id = follows.target_account_id)))
1219 WHERE ((users.current_sign_in_at >= (now() - 'P30D'::interval)) AND (account_summaries.sensitive = false) AND (follow_recommendation_suppressions.id IS NULL))
1220 GROUP BY account_summaries.account_id
1221 HAVING (count(follows.id) >= 5)
1223 SELECT account_summaries.account_id,
1224 (sum((status_stats.reblogs_count + status_stats.favourites_count)) / (1.0 + sum((status_stats.reblogs_count + status_stats.favourites_count)))) AS rank,
1225 'most_interactions'::text AS reason
1226 FROM (((status_stats
1227 JOIN statuses ON ((statuses.id = status_stats.status_id)))
1228 JOIN account_summaries ON ((account_summaries.account_id = statuses.account_id)))
1229 LEFT JOIN follow_recommendation_suppressions ON ((follow_recommendation_suppressions.account_id = statuses.account_id)))
1230 WHERE ((statuses.id >= (((date_part('epoch'::text, (now() - 'P30D'::interval)) * (1000)::double precision))::bigint << 16)) AND (account_summaries.sensitive = false) AND (follow_recommendation_suppressions.id IS NULL))
1231 GROUP BY account_summaries.account_id
1232 HAVING (sum((status_stats.reblogs_count + status_stats.favourites_count)) >= (5)::numeric)) t0
1233 GROUP BY t0.account_id
1234 ORDER BY (sum(t0.rank)) DESC;
1236 add_index
"follow_recommendations" , [ "account_id" ], name
: "index_follow_recommendations_on_account_id" , unique
: true
This page took 0.457346 seconds and 4 git commands to generate.