29 lines
790 B
Ruby
29 lines
790 B
Ruby
|
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
|