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类型
image

修改后为int
image

posted @ 2021-05-29 21:20  HaimaBlog  阅读(406)  评论(0编辑  收藏  举报