a5c8a52782
Caching of BroadcastMessage instances has been changed so a cache stays valid as long as the default cache expiration time permits, instead of the cache being expired after 1 minute. When modifying broadcast messages the cache is flushed automatically. To remove the need for performing sequence scans on the "broadcast_messages" table we also add an index on (starts_at, ends_at, id), permitting PostgreSQL to use an index scan to get all necessary data. Finally this commit adds a few NOT NULL constraints to the table to match the Rails validations. Fixes gitlab-org/gitlab-ce#31706
21 lines
545 B
Ruby
21 lines
545 B
Ruby
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
|
|
# for more information on how to write migrations for GitLab.
|
|
|
|
class AddBroadcastMessagesIndex < ActiveRecord::Migration
|
|
include Gitlab::Database::MigrationHelpers
|
|
|
|
# Set this constant to true if this migration requires downtime.
|
|
DOWNTIME = false
|
|
|
|
disable_ddl_transaction!
|
|
|
|
COLUMNS = %i[starts_at ends_at id].freeze
|
|
|
|
def up
|
|
add_concurrent_index :broadcast_messages, COLUMNS
|
|
end
|
|
|
|
def down
|
|
remove_concurrent_index :broadcast_messages, COLUMNS
|
|
end
|
|
end
|