ActiveRecord::Migration::CommandRecorder and change_table and
state that the CommandRecorder knows how to invert the following
commands: add_column, add_index, add_timestamp, create_table,
remove_timestamps, rename_column, rename_index, rename_table.

In a migration, if I use change_table, will the CommandRecorder knows
how to revert the change?

For example, I suppose that the underlying code will use add_column,
but as it is not explicitly called in the migration, will the
migration be reversible? If not, could that be explicitly written in
the doc and guides?

class ExampleMigration < ActiveRecord::Migration
  def change
    change_table :products do |t|
      t.string :category


The change_table method is not supported yet in reversible migrations.
As the docs and guides state, the listed methods are the only ones
that can be used in a <code>def change</code> method. See