diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2020-07-07 15:26:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-07 15:26:51 +0200 |
commit | 6e25574ce599cbc37b7215ded03c7d07208af6bb (patch) | |
tree | f551a6ff7f5bd6b3f46fdeb14d41625e8d77530d /db/migrate | |
parent | 81a3db156401a46037864b5ff46852e3c2e23bc9 (diff) |
Fix media attachments enumeration (#14254)
* Fix media attachment enumeration * Switch media_attachments id to snowflake ids Co-authored-by: Thibaut Girka <thib@sitedethib.com>
Diffstat (limited to 'db/migrate')
-rw-r--r-- | db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb | 17 |
1 files changed, 17 insertions, 0 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 |