El consejo de Rubocop es bueno, pero no creo que sea la causa de este error. (el ‘riesgo’ que menciona se refiere a bloqueos en tablas de alto tráfico que afectarían el tráfico de producción. Así que no es algo que cause errores en un entorno de prueba)
Probablemente puedas reproducir el mismo error localmente ejecutando RAILS_ENV=test bin/rake db:drop db:create db:migrate (es decir, migrando una base de datos totalmente desde cero, con el plugin de ubicaciones habilitado)
Sospecho que el problema es que estás invocando tareas Rake dentro de una migración. En el núcleo, generalmente evitamos ejecutar cualquier tipo de código de aplicación en las migraciones debido a los extraños efectos secundarios que pueden ocurrir. Es mejor ceñirse a SQL puro.
En este caso, mi suposición es que la caché del esquema de ActiveRecord se está poblando al principio de las migraciones (cuando topics.off_topic_count todavía existe). Luego, cuando tu tarea Rake se ejecuta, lo hace con una caché de esquema antigua y, por lo tanto, ActiveRecord intenta cargar columnas que ya no existen.
Probablemente puedas mitigar esto agregando ActiveRecord::Base.clear_cache! antes de invocar las tareas Rake… pero no lo tomes como una recomendación
. Lo mejor sería evitar invocar las tareas Rake por completo. Si necesitas manipular algo en la base de datos, usa SQL puro dentro de la migración.