相关疑难解决方法(0)

是什么决定了rails在表定义中是否包含id :: serial?

我正在使用postgresql使用现有的rails应用程序.它的schema.rb文件包含id: :serial许多(但不是全部)表:

create_table "foos", id: :serial, force: :cascade do |t|
Run Code Online (Sandbox Code Playgroud)

当我跑rails db:migrate:reset,id: :serial被删除.我们都是相同版本的postgres,但不同的操作系统.我没有详尽地测试机器之间的行为,但我认为机器之间存在差异.

rails版本与项目启动时的版本相同.

该项目确实以sqlite3开头.当我切换到那个并重新生成文件时,行为相同.

什么可能导致在我的环境中删除此选项?

这里有一些可能相关的代码:

更新

  • 我刚试过rails db:migrate:reset同事的机器,我错了!他们的环境也会删除id: :serial.
  • 我仔细看了一下同事最近的迁移,最近的一次也没有id: :serial在schema.rb中创建.

postgresql ruby-on-rails rails-migrations

13
推荐指数
2
解决办法
1437
查看次数