    # File lib/active_record/migration.rb, line 255
          def migrate(direction)
            return unless respond_to?(direction)

            case direction
              when :up   then announce "migrating"
              when :down then announce "reverting"
            end

            result = nil
            time = Benchmark.measure { result = send("#{direction}_without_benchmarks") }

            case direction
              when :up   then announce "migrated (%.4fs)" % time.real; write
              when :down then announce "reverted (%.4fs)" % time.real; write
            end

            result
          end