mirror of
https://github.com/discourse/discourse.git
synced 2024-11-29 05:53:38 +08:00
DEV: allow nulls in email_tokens token column (#15271)
This column was dropped in a previous commit, in post migrations. Unfortunatly that causes smoke tests to fail as there is a period between migration and post migrations where records can not be inserted into the table.
This commit is contained in:
parent
adb6202c94
commit
5fc42bf769
28
db/migrate/20211213060445_email_tokens_token_to_nullable.rb
Normal file
28
db/migrate/20211213060445_email_tokens_token_to_nullable.rb
Normal file
|
@ -0,0 +1,28 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class EmailTokensTokenToNullable < ActiveRecord::Migration[6.1]
|
||||
def up
|
||||
# ensure column is nullable in case any inserts happen
|
||||
# prior to post migrations
|
||||
#
|
||||
# using this somewhat verbose pattern to avoid impacting people who
|
||||
# drifted on main
|
||||
begin
|
||||
Migration::SafeMigrate.disable!
|
||||
if DB.query_single(<<~SQL).length > 0
|
||||
SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE table_name = 'email_tokens' AND column_name = 'token'
|
||||
SQL
|
||||
execute <<~SQL
|
||||
ALTER TABLE email_tokens ALTER COLUMN token DROP NOT NULL
|
||||
SQL
|
||||
end
|
||||
ensure
|
||||
Migration::SafeMigrate.enable!
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
# do nothing, does not matter
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user