Retrospring/db/migrate/20210814134115_create_user_...

30 lines
820 B
Ruby

# frozen_string_literal: true
class CreateUserBans < ActiveRecord::Migration[5.2]
def up
create_table :user_bans do |t|
t.bigint :user_id
t.string :reason
t.datetime :expires_at
t.bigint :banned_by_id, nullable: true
t.timestamps
end
# foxy's functional fqueries
execute "INSERT INTO user_bans
(user_id, reason, expires_at, created_at, updated_at)
SELECT users.id, users.ban_reason, users.banned_until, users.updated_at, NOW() FROM users
WHERE banned_until IS NOT NULL AND NOT permanently_banned;"
execute "INSERT INTO user_bans
(user_id, reason, expires_at, created_at, updated_at)
SELECT users.id, users.ban_reason, NULL, users.updated_at, NOW() FROM users
WHERE permanently_banned;"
end
def down
drop_table :user_bans
end
end