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


当前回答

对于较旧版本的Rails

ruby script/generate migration RemoveFieldNameFromTableName field_name:datatype

适用于Rails 3及更高版本

rails generate migration RemoveFieldNameFromTableName field_name:datatype

其他回答

从表中删除列只需简单的3个步骤如下:

写这个命令

Rails迁移remove_column_from_table_name

在终端上运行此命令后,使用此名称和时间戳创建的文件(remove_column from_table_name)。

然后转到这个文件。

里面的文件你必须写 Remove_column:table_name,:column_name 最后转到控制台,然后执行 rake db: migrate

在rails4应用中,也可以使用change方法删除列。第三个参数是data_type,在可选的参数中可以给出选项。它在文档中的“可用转换”部分中有点隐藏。

class RemoveFieldFromTableName < ActiveRecord::Migration
  def change
    remove_column :table_name, :field_name, :data_type, {}
  end
end

给出下面的命令,它将自己添加到迁移文件中

rails g migration RemoveColumnFromModel

运行以上命令后,您可以检查迁移文件remove_column代码必须自己添加到那里

然后迁移数据库

rake db:migrate

这里还有一个来自rails控制台的例子

ActiveRecord::迁移。remove_column (: table_name column_name):

rails g migration RemoveXColumnFromY column_name:data_type

X =列名 Y =表名

EDIT

根据注释将RemoveXColumnToY更改为RemoveXColumnFromY -为迁移实际做的事情提供了更清晰的说明。