通过Rails迁移删除数据库表列的语法是什么?
当前回答
在rails4应用中,也可以使用change方法删除列。第三个参数是data_type,在可选的参数中可以给出选项。它在文档中的“可用转换”部分中有点隐藏。
class RemoveFieldFromTableName < ActiveRecord::Migration
def change
remove_column :table_name, :field_name, :data_type, {}
end
end
其他回答
这样做;
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
在rails4应用中,也可以使用change方法删除列。第三个参数是data_type,在可选的参数中可以给出选项。它在文档中的“可用转换”部分中有点隐藏。
class RemoveFieldFromTableName < ActiveRecord::Migration
def change
remove_column :table_name, :field_name, :data_type, {}
end
end
通过 Remove_column:table_name,:column_name 在迁移文件中
你可以在rails控制台中直接删除一个列: ActiveRecord:: Base。Remove_column:table_name,:column_name
这里还有一个来自rails控制台的例子
ActiveRecord::迁移。remove_column (: table_name column_name):
推荐文章
- Ruby中没有增量操作符(++)?
- 我如何得到“id”后插入到MySQL数据库与Python?
- 什么是ORM,它是如何工作的,我应该如何使用它?
- 如何得到一个特定的输出迭代哈希在Ruby?
- Ruby正则表达式中\A \z和^ $的区别
- 我能在视图中得到当前控制器的名称吗?
- 为现有数据库生成ERD
- BASE术语解释
- __FILE__在Ruby中是什么意思?
- Paperclip::Errors::MissingRequiredValidatorError with Rails
- 如何表达一个NOT IN查询与ActiveRecord/Rails?
- Ruby on Rails form_for选择字段与类
- Ruby:如何将散列转换为HTTP参数?
- 非加密用途的最快哈希?
- 查询以列出数据库中每个表中的记录数量