Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
--- /dev/null
+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
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