discourse/db/migrate/20200330233427_drop_old_unread_pm_notification_indices.rb
David Taylor e76c583b91
DEV: Promote old post-deploy migrations to pre-deploy migrations (#13477)
Having a large number of post-deploy migrations running out-of-numerical-sequence with pre-deploy migrations can be problematic. For example, if we have the sequence

- db/migrate/2017... - add column
- db/post_migrate/2018... - drop the column
- db/migrate/2021... - add the same column again

It will work fine in numerical order. But if you run the pre-deploy migrations **followed by** the post-deploy migrations, you will not get the same result.

Our post-deploy system is designed to allow for seamless upgrades of Discourse. However, it is reasonable for us to only support this totally seamless experience for a limited period of time. This commit moves all post_deploy migrations which are more than 1 year old (i.e. more than 2 major Discourse versions ago) into the regular pre-deploy migrations directory. This limits the impact of any edge cases caused by out-of-numerical-sequence migrations.
2021-06-22 16:02:24 +01:00

13 lines
334 B
Ruby

# frozen_string_literal: true
class DropOldUnreadPmNotificationIndices < ActiveRecord::Migration[6.0]
def up
DB.exec("DROP INDEX IF EXISTS index_notifications_on_user_id_and_id")
DB.exec("DROP INDEX IF EXISTS index_notifications_on_read_or_n_type")
end
def down
raise ActiveRecord::IrreversibleMigration
end
end