Rails向数据库添加新字段和修改字段
目录
添加字段
控制台上执行下面的命令
rails g migration addColumnToBlackIps send_time:datetime
会生成文件db/migrate/20210529131328_add_column_to_black_ips.rb
class AddColumnToBlackIps < ActiveRecord::Migration[5.0]
def change
add_column :black_ips, :send_time, :datetime
add_column :black_ips, :black_tools, :boolean, default: false ,comment:'黑客工具 false:否 true:是'
end
end
执行迁移
rake db:migrate
执行结果
CREATE TABLE `black_ips` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(255) DEFAULT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
`send_time` datetime DEFAULT NULL,
`black_tools` tinyint(1) DEFAULT '0' COMMENT '黑客工具 false:否 true:是',
PRIMARY KEY (`id`),
KEY `index_black_ips_on_ip` (`ip`)
) ENGINE=InnoDB AUTO_INCREMENT=6121 DEFAULT CHARSET=utf8;
看一下表里会在schema_migrations表里添加一条已经迁移过的记录
值会和迁移文件名一致。
撤消最后一次迁移
rake db:rollback
修改字段
添加迁移文件
rails g migration change_column_is_wulianwang_black_tools_to_black_ips_tags
编写迁移文件
class ChangeColumnIsWulianwangBlackToolsToBlackIpsTags < ActiveRecord::Migration[5.0]
def change
change_column :black_ips_tags, :is_wulianwang, :integer, limit: 1, default: 0,comment: '物联网设备 0:否 1:是 -1:变为否,待查询后删除'
change_column :black_ips_tags, :black_tools, :integer, limit: 1, default: 0,comment: '黑客工具 0:否 1:是 -1:变为否,待查询后删除'
end
end
执行迁移
rake db:migrate
修改前是bool类型
修改后为int
[Haima的博客]
http://www.cnblogs.com/haima/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构