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


当前回答

生成一个迁移以删除一个列,这样如果它被迁移(rake db:migrate),它应该删除该列。如果这个迁移被回滚(rake db:rollback),它应该将列添加回。

语法:

Remove_column:table_name,:column_name,:type

删除列,如果迁移回滚,也将列添加回。

例子:

remove_column :users, :last_name, :string

注意:如果跳过data_type,迁移将成功移除列,但如果回滚迁移,它将抛出一个错误。

其他回答

生成一个迁移以删除一个列,这样如果它被迁移(rake db:migrate),它应该删除该列。如果这个迁移被回滚(rake db:rollback),它应该将列添加回。

语法:

Remove_column:table_name,:column_name,:type

删除列,如果迁移回滚,也将列添加回。

例子:

remove_column :users, :last_name, :string

注意:如果跳过data_type,迁移将成功移除列,但如果回滚迁移,它将抛出一个错误。

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

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

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

rails g migration remove_column_name_from_table_name column_name:data_type

然后执行命令:

rake db:migrate

删除RAILS 5应用程序的列

rails g migration Remove<Anything>From<TableName> [columnName:type]

上面的命令在db/migrate目录中生成一个迁移文件。Snippet blow是Rails生成器生成的从表中删除列的示例之一,

class RemoveAgeFromUsers < ActiveRecord::Migration
  def up
    remove_column :users, :age
  end
  def down
    add_column :users, :age, :integer
  end
end

我还做了一个Rails的快速参考指南,可以在这里找到。

你可以尝试以下方法:

remove_column :table_name, :column_name

(官方文档)