如何使用Rails迁移删除列

通过Rails迁移删除数据库表列的语法是什么?


remove_column :table_name, :column_name

例如:

remove_column :users, :hobby

会从用户表中删除爱好列。


对于旧版本的Rails

ruby script/generate migration RemoveFieldNameFromTableName field_name:datatype

适用于Rails 3以上

rails generate migration RemoveFieldNameFromTableName field_name:datatype

Rails 4已经更新,因此可以在迁移中使用更改方法来删除列,并且迁移将成功回滚。 请阅读Rails 3应用程序的以下警告:

Rails 3警告

请注意,当你使用这个命令时:

rails generate migration RemoveFieldNameFromTableName field_name:datatype

生成的迁移将如下所示:

  def up
    remove_column :table_name, :field_name
  end

  def down
    add_column :table_name, :field_name, :datatype
  end

从数据库表中删除列时请确保不要使用change方法(Rails 3应用程序中的迁移文件中不需要的示例):

  def change
    remove_column :table_name, :field_name
  end

Rails 3中的更改方法在remove_column方面并不明智,因此您将无法回滚此迁移。

链接地址: http://www.djcxy.com/p/47179.html

上一篇: How to drop columns using Rails migration

下一篇: Rails migration for change column