Forbid the use of drop_table in db/migrate migrations
In https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23314 we added a migration that drops a table in a regular migration. Dropping a table can only safely be done in a post-deployment migration, as otherwise there might still be code running that uses the table. While this was fixed in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23455, we could have easily ended up with downtime because of this.
To prevent this from happening again, we should add a RuboCop cop that forbids the use of drop_table
in db/migrate
, while still allowing it in db/post_migrate
.