当列与表不匹配时,如何可逆地删除表上的remove_foreign_key?

Chl*_*loe 5 ruby-on-rails rails-migrations ruby-on-rails-5

我尝试了以下

remove_foreign_key :users, :asset_types, column: :seek_asset_type_id
Run Code Online (Sandbox Code Playgroud)

但是得到了错误

StandardError:发生错误,此错误和所有后续迁移
均被取消:参数数量错误(给定3个,预期值为1..2)

文档说它使用与相同的选项#add_foreign_key

文献资料

该列以前是用

add_reference :users, :seek_asset_type, foreign_key: {to_table: :asset_types}
Run Code Online (Sandbox Code Playgroud)

这是定义:

"fk_rails_4dcaa1c59c" FOREIGN KEY (seek_asset_type_id) REFERENCES asset_types(id)
Run Code Online (Sandbox Code Playgroud)

Swa*_*and 5

使用revert

def change
  revert do
    add_reference :users, :seek_asset_type, foreign_key: { to_table: :asset_types }
  end
end
Run Code Online (Sandbox Code Playgroud)

另一种方法是按名称还原迁移:

def change
  revert AddAssetTypeReferenceToUsers 
  # I made up this migration name, 
  # so please fill in the appropriate name
end
Run Code Online (Sandbox Code Playgroud)