O conselho do Rubocop é bom, mas não acho que seja a causa deste erro. (o ‘risco’ que ele menciona se refere a bloqueios em tabelas de alto tráfego que afetariam o tráfego de produção. Portanto, não é algo que causaria erros em um ambiente de teste)
Você provavelmente pode reproduzir o mesmo erro localmente executando RAILS_ENV=test bin/rake db:drop db:create db:migrate (ou seja, migrando um banco de dados totalmente do zero, com o plugin de locais ativado)
Suspeito que o problema seja que você está invocando tarefas Rake dentro de uma migração. No core, geralmente evitamos executar qualquer tipo de código de aplicativo em migrações por causa dos efeitos colaterais estranhos que podem acontecer. É melhor usar SQL puro.
Neste caso, minha suposição é que o cache de esquema do ActiveRecord está sendo preenchido no início das migrações (quando topics.off_topic_count ainda existe). Então, quando sua tarefa rake é executada, ela roda com um cache de esquema antigo e, portanto, o ActiveRecord tenta carregar colunas que não existem mais.
Você provavelmente pode mitigar isso adicionando ActiveRecord::Base.clear_cache! antes de invocar as tarefas rake… mas não tome isso como uma recomendação
. A melhor coisa seria evitar invocar as tarefas rake completamente. Se você precisar manipular algo no banco de dados, use SQL puro dentro da migração.