简单的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