def migrate(from:, to:)
          source_indexes = Indexes.new(connection: connection).on(from)
          retargeted_indexes = source_indexes.map { |i| retarget(i, to: to) }
          source_indexes.each(&method(:rename))

          if source_indexes.any?
            say "indexes on '#{from}' have been renamed to avoid collisions"
          end

          IndexCreation
            .new(connection: connection, speaker: speaker)
            .try_create(retargeted_indexes)
        end
Retreives the indexes on the original view, renames them to avoid
collisions, retargets the indexes to the destination view, and then
creates the retargeted indexes.

@param from [String] The name of the original view.
@param to [String] The name of the destination view.

@return [void]