Change quote IDs to use snowflake IDs (#34551)
This commit is contained in:
		
							
								
								
									
										19
									
								
								db/migrate/20250425134308_quote_ids_to_timestamp_ids.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								db/migrate/20250425134308_quote_ids_to_timestamp_ids.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class QuoteIdsToTimestampIds < ActiveRecord::Migration[8.0]
 | 
				
			||||||
 | 
					  def up
 | 
				
			||||||
 | 
					    # Set up the media_attachments.id column to use our timestamp-based IDs.
 | 
				
			||||||
 | 
					    safety_assured do
 | 
				
			||||||
 | 
					      execute("ALTER TABLE quotes ALTER COLUMN id SET DEFAULT timestamp_id('quotes')")
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Make sure we have a sequence to use.
 | 
				
			||||||
 | 
					    Mastodon::Snowflake.ensure_id_sequences_exist
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def down
 | 
				
			||||||
 | 
					    execute('LOCK quotes')
 | 
				
			||||||
 | 
					    execute("SELECT setval('quotes_id_seq', (SELECT MAX(id) FROM quotes))")
 | 
				
			||||||
 | 
					    execute("ALTER TABLE quotes ALTER COLUMN id SET DEFAULT nextval('quotes_id_seq')")
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
@@ -10,7 +10,7 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# It's strongly recommended that you check this file into your version control system.
 | 
					# It's strongly recommended that you check this file into your version control system.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ActiveRecord::Schema[8.0].define(version: 2025_04_22_085303) do
 | 
					ActiveRecord::Schema[8.0].define(version: 2025_04_25_134654) do
 | 
				
			||||||
  # These are extensions that must be enabled in order to support this database
 | 
					  # These are extensions that must be enabled in order to support this database
 | 
				
			||||||
  enable_extension "pg_catalog.plpgsql"
 | 
					  enable_extension "pg_catalog.plpgsql"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -871,7 +871,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_04_22_085303) do
 | 
				
			|||||||
    t.string "url"
 | 
					    t.string "url"
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  create_table "quotes", force: :cascade do |t|
 | 
					  create_table "quotes", id: :bigint, default: -> { "timestamp_id('quotes'::text)" }, force: :cascade do |t|
 | 
				
			||||||
    t.bigint "account_id", null: false
 | 
					    t.bigint "account_id", null: false
 | 
				
			||||||
    t.bigint "status_id", null: false
 | 
					    t.bigint "status_id", null: false
 | 
				
			||||||
    t.bigint "quoted_status_id"
 | 
					    t.bigint "quoted_status_id"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user