通过Rails迁移删除数据库表列的语法是什么?
当前回答
首先尝试使用以下命令创建一个迁移文件:
rails g migration RemoveAgeFromUsers age:string
然后在项目的根目录运行迁移命令:
rails db:migrate
其他回答
在rails4应用中,也可以使用change方法删除列。第三个参数是data_type,在可选的参数中可以给出选项。它在文档中的“可用转换”部分中有点隐藏。
class RemoveFieldFromTableName < ActiveRecord::Migration
def change
remove_column :table_name, :field_name, :data_type, {}
end
end
生成一个迁移以删除一个列,这样如果它被迁移(rake db:migrate),它应该删除该列。如果这个迁移被回滚(rake db:rollback),它应该将列添加回。
语法:
Remove_column:table_name,:column_name,:type
删除列,如果迁移回滚,也将列添加回。
例子:
remove_column :users, :last_name, :string
注意:如果跳过data_type,迁移将成功移除列,但如果回滚迁移,它将抛出一个错误。
您可以使用rails迁移命令
rails generate migration RemoveColumnNameFromTableName column_name:column_type
然后你可以迁移数据库:
rails db:migrate
这里还有一个来自rails控制台的例子
ActiveRecord::迁移。remove_column (: table_name column_name):
remove_column :table_name, :column_name
例如:
remove_column :users, :hobby
从用户表中删除嗜好列。
推荐文章
- 确定ActiveRecord对象是否为New
- Rails中的OO设计:在哪里放置东西
- 如何在Heroku上重新启动rails服务器?
- respond_to块如何工作?
- 使用{merge: true}设置的Firestore与更新之间的差异
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- 使用电子邮件地址为主键?
- 给定一个类,查看实例是否有方法(Ruby)
- rails局部模板中的可选局部变量:如何退出(defined?foo)混乱?
- MongoDB在v4之前不兼容ACID意味着什么?
- 在日历应用程序中建模重复事件的最佳方法是什么?
- Ruby Bundle Symbol not found: _SSLv2_client_method (LoadError)
- 第一次设计数据库:我是否过度设计了?
- 如何创建一个私有类方法?
- rails耙任务是否提供对ActiveRecord模型的访问?