diff options
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb | 17 | ||||
-rw-r--r-- | db/schema.rb | 26 |
2 files changed, 30 insertions, 13 deletions
diff --git a/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb b/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb new file mode 100644 index 000000000..5c6865b92 --- /dev/null +++ b/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb @@ -0,0 +1,17 @@ +class MediaAttachmentIdsToTimestampIds < ActiveRecord::Migration[5.1] + def up + # Set up the media_attachments.id column to use our timestamp-based IDs. + safety_assured do + execute("ALTER TABLE media_attachments ALTER COLUMN id SET DEFAULT timestamp_id('media_attachments')") + end + + # Make sure we have a sequence to use. + Mastodon::Snowflake.ensure_id_sequences_exist + end + + def down + execute("LOCK media_attachments") + execute("SELECT setval('media_attachments_id_seq', (SELECT MAX(id) FROM media_attachments))") + execute("ALTER TABLE media_attachments ALTER COLUMN id SET DEFAULT nextval('media_attachments_id_seq')") + end +end diff --git a/db/schema.rb b/db/schema.rb index ee6954813..37cd34136 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -77,6 +77,16 @@ ActiveRecord::Schema.define(version: 2020_06_28_133322) do t.index ["target_account_id"], name: "index_account_moderation_notes_on_target_account_id" end + create_table "account_notes", force: :cascade do |t| + t.bigint "account_id" + t.bigint "target_account_id" + t.text "comment", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["account_id", "target_account_id"], name: "index_account_notes_on_account_id_and_target_account_id", unique: true + t.index ["target_account_id"], name: "index_account_notes_on_target_account_id" + end + create_table "account_pins", force: :cascade do |t| t.bigint "account_id" t.bigint "target_account_id" @@ -472,7 +482,7 @@ ActiveRecord::Schema.define(version: 2020_06_28_133322) do t.index ["user_id", "timeline"], name: "index_markers_on_user_id_and_timeline", unique: true end - create_table "media_attachments", force: :cascade do |t| + create_table "media_attachments", id: :bigint, default: -> { "timestamp_id('media_attachments'::text)" }, force: :cascade do |t| t.bigint "status_id" t.string "file_file_name" t.string "file_content_type" @@ -836,16 +846,6 @@ ActiveRecord::Schema.define(version: 2020_06_28_133322) do t.index ["user_id"], name: "index_user_invite_requests_on_user_id" end - create_table "account_notes", force: :cascade do |t| - t.bigint "account_id" - t.bigint "target_account_id" - t.text "comment", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["account_id", "target_account_id"], name: "index_account_notes_on_account_id_and_target_account_id", unique: true - t.index ["target_account_id"], name: "index_account_notes_on_target_account_id" - end - create_table "users", force: :cascade do |t| t.string "email", default: "", null: false t.datetime "created_at", null: false @@ -921,6 +921,8 @@ ActiveRecord::Schema.define(version: 2020_06_28_133322) do add_foreign_key "account_migrations", "accounts", on_delete: :cascade add_foreign_key "account_moderation_notes", "accounts" add_foreign_key "account_moderation_notes", "accounts", column: "target_account_id" + add_foreign_key "account_notes", "accounts", column: "target_account_id", on_delete: :cascade + add_foreign_key "account_notes", "accounts", on_delete: :cascade add_foreign_key "account_pins", "accounts", column: "target_account_id", on_delete: :cascade add_foreign_key "account_pins", "accounts", on_delete: :cascade add_foreign_key "account_stats", "accounts", on_delete: :cascade @@ -1002,8 +1004,6 @@ ActiveRecord::Schema.define(version: 2020_06_28_133322) do add_foreign_key "statuses_tags", "tags", name: "fk_3081861e21", on_delete: :cascade add_foreign_key "tombstones", "accounts", on_delete: :cascade add_foreign_key "user_invite_requests", "users", on_delete: :cascade - add_foreign_key "account_notes", "accounts", column: "target_account_id", on_delete: :cascade - add_foreign_key "account_notes", "accounts", on_delete: :cascade add_foreign_key "users", "accounts", name: "fk_50500f500d", on_delete: :cascade add_foreign_key "users", "invites", on_delete: :nullify add_foreign_key "users", "oauth_applications", column: "created_by_application_id", on_delete: :nullify |