```ruby
class OverviewRoleIds < ActiveRecord::Migration
  def up

    # return if it's a new setup
    return if !Setting.find_by(name: 'system_init_done')

    create_table :overviews_roles, id: false do |t|
      t.integer :overview_id
      t.integer :role_id
    end
    add_index :overviews_roles, [:overview_id]
    add_index :overviews_roles, [:role_id]
    Overview.connection.schema_cache.clear!
    Overview.reset_column_information
    Overview.all.each { |overview|
      next if overview.role_id.blank?
      overview.role_ids = [overview.role_id]
      overview.save!
    }
    remove_column :overviews, :role_id
  end

end
```

Delete cache for invalidate overview caches.
user
```ruby
class OverviewRoleIds < ActiveRecord::Migration
  def up

    # return if it's a new setup
    return if !Setting.find_by(name: 'system_init_done')

    create_table :overviews_roles, id: false do |t|
      t.integer :overview_id
      t.integer :role_id
    end
    add_index :overviews_roles, [:overview_id]
    add_index :overviews_roles, [:role_id]
    Overview.connection.schema_cache.clear!
    Overview.reset_column_information
    Overview.all.each { |overview|
      next if overview.role_id.blank?
      overview.role_ids = [overview.role_id]
      overview.save!
    }
    remove_column :overviews, :role_id

    Cache.clear
  end

end
```
assistant