ruby-on-rails - rails开发 - ruby on rails教程




如何使用Rails迁移删除列 (10)

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方面并不明智,因此您将无法回滚此迁移。

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



下面的命令会自动添加迁移文件

rails g migration RemoveColumnFromModel

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

然后迁移数据库

rake db:migrate

只需轻松3个步骤即可从表格中移除色谱柱,如下所示:

  1. 编写这个命令

rails g migration remove_column_from_table_name

在由此名称和时间戳(remove_column from_table_name)创建的终端1文件中运行此命令之后。

然后去这个文件。

  1. 里面的文件,你必须写

    remove_column :table_name, :column_name

  2. 最后去控制台然后做

    rake db:migrate


在rails4应用程序中,也可以使用更改方法来移除列。 第三个参数是data_type,在可选参数中您可以给出选项。 它在文档的 “可用转换”一节中有点隐藏。

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

对于旧版本的Rails

ruby script/generate migration RemoveFieldNameFromTableName field_name:datatype

适用于Rails 3以上

rails generate migration RemoveFieldNameFromTableName field_name:datatype

生成一个迁移来删除一个列,以便如果它被修改( rake db:migrate ),它应该删除该列 。 如果此迁移回滚( rake db:rollback ),它应该添加列

语法:

remove_column:table_name,:column_name

删除列但未能在回滚时添加列。

例:

remove_column :users, :last_name

请注意复数表名称:用户

语法:

remove_column:table_name,:column_name,:type

删除列,如果迁移回滚,还会添加列

例:

remove_column :users, :last_name, :string

快乐的编码!


要从表中删除列,您必须运行以下迁移:

rails g migration remove_column_name_from_table_name column_name:data_type

然后运行命令:

rake db:migrate

rails g migration RemoveXColumnFromY column_name:data_type

X =列名称
Y =表名

编辑

根据注释将RemoveXColumnFromY更改为RemoveXColumnFromY - 为迁移实际执行的内容提供更清晰的信息。


remove_column :table_name, :column_name

例如:

remove_column :users, :hobby

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





rails-migrations