栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

更改迁移中的自动​​增量值(PostgreSQL和SQLite3)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

更改迁移中的自动​​增量值(PostgreSQL和SQLite3)

老实说,听起来这并不属于迁移。但是,您可以将以下内容添加到初始化程序中,以使其成为方便的基类方法以作为任务的一部分进行调用:

ActiveRecord::base.class_eval do  def self.reset_autoincrement(options={})    options[:to] ||= 1    case self.connection.adapter_name      when 'MySQL'        self.connection.execute "ALTER TABLE #{self.table_name} AUTO_INCREMENT=#{options[:to]}"      when 'PostgreSQL'        self.connection.execute "ALTER SEQUENCE #{self.table_name}_id_seq RESTART WITH #{options[:to]};"      when 'SQLite'        self.connection.execute "UPDATE sqlite_sequence SET seq=#{options[:to]} WHERe name='#{self.table_name}';"      else    end  endend

然后,只需将以下内容作为任务的一部分运行,或者直接在控制台中运行:

Mytable.reset_autoincrement(:to => 1000)

确保检查此方便的答案,以了解为什么sqlite无法正常工作。

SQLite重置主键字段



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/612267.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号