discourse/db/migrate/20180720054856_create_skipp...

50 lines
1.1 KiB
Ruby

# frozen_string_literal: true
require "migration/column_dropper"
class CreateSkippedEmailLogs < ActiveRecord::Migration[5.2]
def change
create_table :skipped_email_logs do |t|
t.string :email_type, null: false
t.string :to_address, null: false
t.integer :user_id
t.integer :post_id
t.integer :reason_type, null: false
t.text :custom_reason
t.timestamps
end
add_index :skipped_email_logs, :created_at
add_index :skipped_email_logs, :user_id
add_index :skipped_email_logs, :post_id
add_index :skipped_email_logs, :reason_type
sql = <<~SQL
INSERT INTO skipped_email_logs (
email_type,
to_address,
user_id,
post_id,
reason_type,
custom_reason,
created_at,
updated_at
) SELECT
email_type,
to_address,
user_id,
post_id,
1,
skipped_reason,
created_at,
updated_at
FROM email_logs
WHERE skipped IS TRUE
SQL
execute(sql)
Migration::ColumnDropper.mark_readonly("email_logs", "skipped_reason")
end
end