ActiveRecord - 更改表以设置自动增量最小值?

时间:2015-05-01 20:40:24

标签: mysql ruby-on-rails activerecord

背景

简单的rails activerecord migration

class CreateMyTable < ActiveRecord::Migration
  def change    
    create_table :my_table, force: :cascade do |t|
      t.index    "id"
      t.string   "column1",     limit: 64
      t.string   "column2", limit: 64

      t.timestamps null: false
    end       
    MyTable.connection.execute("ALTER TABLE my_table AUTO_INCREMENT = 10000;") 
  end
end

它会创建my_table并为其添加几列。最后一行执行raw命令,将第一个id设置为以10000开始计数。

问题

运行db:migrate rails时,会更新schema.rb文件以合并此迁移的结果,即添加新表。

但是设置AUTO_INCREMENT的最后一条语句并未在schema.rb文件中捕获。

当其他用户或服务器第一次运行db:setup时,rails会使用schema.rb来构建架构,并且不会发现它需要碰撞{{1}到10000.

有没有办法将此迁移更改到id文件中,以便根据此schema.rb文件构建的所有未来数据库将适当增加schema.rb?< / p>

修改

根据以下建议,我尝试编辑迁移以删除id引用,我的t.index如下

schema.rb

0 个答案:

没有答案