mirror of
https://github.com/discourse/discourse.git
synced 2024-12-15 23:33:57 +08:00
77 lines
2.6 KiB
Ruby
77 lines
2.6 KiB
Ruby
|
class AddUserOptions < ActiveRecord::Migration
|
||
|
def up
|
||
|
|
||
|
create_table :user_options, id: false do |t|
|
||
|
t.integer :user_id, null: false
|
||
|
t.boolean :email_always, null: false, default: false
|
||
|
t.boolean :mailing_list_mode, null: false, default: false
|
||
|
t.boolean :email_digests
|
||
|
t.boolean :email_direct, null: false, default: true
|
||
|
t.boolean :email_private_messages, null: false, default: true
|
||
|
t.boolean :external_links_in_new_tab, null: false, default: false
|
||
|
t.boolean :enable_quoting, null: false, default: true
|
||
|
t.boolean :dynamic_favicon, null: false, default: false
|
||
|
t.boolean :disable_jump_reply, null: false, default: false
|
||
|
t.boolean :edit_history_public, null: false, default: false
|
||
|
t.boolean :automatically_unpin_topics, null: false, default: true
|
||
|
t.integer :digest_after_days
|
||
|
end
|
||
|
|
||
|
add_index :user_options, [:user_id], unique: true
|
||
|
|
||
|
execute <<SQL
|
||
|
INSERT INTO user_options (
|
||
|
user_id,
|
||
|
email_always,
|
||
|
mailing_list_mode,
|
||
|
email_digests,
|
||
|
email_direct,
|
||
|
email_private_messages,
|
||
|
external_links_in_new_tab,
|
||
|
enable_quoting,
|
||
|
dynamic_favicon,
|
||
|
disable_jump_reply,
|
||
|
edit_history_public,
|
||
|
automatically_unpin_topics,
|
||
|
digest_after_days
|
||
|
)
|
||
|
SELECT id,
|
||
|
email_always,
|
||
|
mailing_list_mode,
|
||
|
email_digests,
|
||
|
email_direct,
|
||
|
COALESCE(email_private_messages,true),
|
||
|
external_links_in_new_tab,
|
||
|
enable_quoting,
|
||
|
dynamic_favicon,
|
||
|
disable_jump_reply,
|
||
|
edit_history_public,
|
||
|
automatically_unpin_topics,
|
||
|
digest_after_days
|
||
|
FROM users
|
||
|
SQL
|
||
|
|
||
|
# these can not be removed until a bit later
|
||
|
# if we remove them now all currently running unicorns will start erroring out
|
||
|
#
|
||
|
# remove_column :users, :email_always
|
||
|
# remove_column :users, :mailing_list_mode
|
||
|
# remove_column :users, :email_digests
|
||
|
# remove_column :users, :email_direct
|
||
|
# remove_column :users, :email_private_messages
|
||
|
# remove_column :users, :external_links_in_new_tab
|
||
|
# remove_column :users, :enable_quoting
|
||
|
# remove_column :users, :dynamic_favicon
|
||
|
# remove_column :users, :disable_jump_reply
|
||
|
# remove_column :users, :edit_history_public
|
||
|
# remove_column :users, :automatically_unpin_topics
|
||
|
# remove_column :users, :digest_after_days
|
||
|
end
|
||
|
|
||
|
def down
|
||
|
# we can not move backwards here cause columns
|
||
|
# get removed an hour after the migration
|
||
|
raise ActiveRecord::IrreversibleMigration
|
||
|
end
|
||
|
end
|