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


当前回答

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

rails g migration remove_column_name_from_table_name column_name:data_type

然后执行命令:

rake db:migrate

其他回答

你可以尝试以下方法:

remove_column :table_name, :column_name

(官方文档)

这样做;

rails g migration RemoveColumnNameFromTables column_name:类型

即rails g migration RemoveTitleFromPosts title:字符串

无论如何,最好考虑停机时间以及因为ActiveRecord在运行时缓存数据库列,所以如果你删除一列,它可能会导致异常,直到你的应用程序重新启动。

参考:强迁移

步骤1:创建迁移

  rails g migration remove_column_name_from_table

步骤2:更改刚刚创建的文件迁移中的代码

Rails版本< 3

  def change
    remove_column :table_name, :column_name, :datatype
  end

Rails版本>= 3

  def change
    remove_column :table_name, :column_name
  end

3 .迁移

rake db:migrate

您可以使用rails迁移命令

rails generate migration RemoveColumnNameFromTableName column_name:column_type

然后你可以迁移数据库:

rails db:migrate
remove_column :table_name, :column_name

例如:

remove_column :users, :hobby

从用户表中删除嗜好列。