From 6e25574ce599cbc37b7215ded03c7d07208af6bb Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 7 Jul 2020 15:26:51 +0200 Subject: Fix media attachments enumeration (#14254) * Fix media attachment enumeration * Switch media_attachments id to snowflake ids Co-authored-by: Thibaut Girka --- ...00622213645_media_attachment_ids_to_timestamp_ids.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb (limited to 'db/migrate') 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 -- cgit