Change account ids to snowflake ids (#15844)
Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
This commit is contained in:
		
							parent
							
								
									ce2148c571
								
							
						
					
					
						commit
						d5edf22d91
					
				| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
class AccountIdsToTimestampIds < ActiveRecord::Migration[5.1]
 | 
			
		||||
  def up
 | 
			
		||||
    # Set up the accounts.id column to use our timestamp-based IDs.
 | 
			
		||||
    safety_assured do
 | 
			
		||||
      execute("ALTER TABLE accounts ALTER COLUMN id SET DEFAULT timestamp_id('accounts')")
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Make sure we have a sequence to use.
 | 
			
		||||
    Mastodon::Snowflake.ensure_id_sequences_exist
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def down
 | 
			
		||||
    execute("LOCK accounts")
 | 
			
		||||
    execute("SELECT setval('accounts_id_seq', (SELECT MAX(id) FROM accounts))")
 | 
			
		||||
    execute("ALTER TABLE accounts ALTER COLUMN id SET DEFAULT nextval('accounts_id_seq')")
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -142,7 +142,7 @@ ActiveRecord::Schema.define(version: 2021_03_24_171613) do
 | 
			
		|||
    t.index ["target_account_id"], name: "index_account_warnings_on_target_account_id"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  create_table "accounts", force: :cascade do |t|
 | 
			
		||||
  create_table "accounts", id: :bigint, default: -> { "timestamp_id('statuses'::text)" }, force: :cascade do |t|
 | 
			
		||||
    t.string "username", default: "", null: false
 | 
			
		||||
    t.string "domain"
 | 
			
		||||
    t.string "secret", default: "", null: false
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue