Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:db:migrate不一致地更改我的框上的schema.rb_Ruby On Rails_Postgresql_Schema_Database Migration - Fatal编程技术网

Ruby on rails Rails:db:migrate不一致地更改我的框上的schema.rb

Ruby on rails Rails:db:migrate不一致地更改我的框上的schema.rb,ruby-on-rails,postgresql,schema,database-migration,Ruby On Rails,Postgresql,Schema,Database Migration,从Github中下载了一些更新,运行了迁移rails db:migrate,并注意到Git跟踪对repo的更改。缩短的schema.rb的差异显示它插入id::serial,无处不在 有人知道发生了什么吗?倒这个安全吗?它不存在于其他开发人员的机器上?这是我不知道的环境吗 - create_table "boxes", force: :cascade do |t| + create_table "boxes", id: :serial, force: :cascade do |t|

从Github中下载了一些更新,运行了迁移
rails db:migrate
,并注意到Git跟踪对repo的更改。缩短的
schema.rb的差异显示它插入
id::serial,
无处不在

有人知道发生了什么吗?倒这个安全吗?它不存在于其他开发人员的机器上?这是我不知道的环境吗

-  create_table "boxes", force: :cascade do |t|
+  create_table "boxes", id: :serial, force: :cascade do |t|
     t.text "name", default: "", null: false
     t.datetime "created_at", null: false
     t.datetime "updated_at", null: false
@@ -107,7 +107,7 @@ ActiveRecord::Schema.define(version: 2019_05_27_143936) do
     t.index ["user_id"], name: "index_boxes_on_user_id"
   end

-  create_table "comments", force: :cascade do |t|
+  create_table "comments", id: :serial, force: :cascade do |t|
     t.text "body", null: false
     t.integer "commentable_id", null: false
     t.string "commentable_type", null: false
@@ -116,7 +116,7 @@ ActiveRecord::Schema.define(version: 2019_05_27_143936) do
     t.datetime "updated_at", null: false
   end

生成的
schema.rb
structure.sql
中的更改通常是在更新postgres服务器或rails时引起的


对于这个特定的问题,似乎已经有了答案:

您作为链接给出的答案只是给出了它发生的原因以及如何解决它?通常您不需要解决任何问题。只需使用新生成的模式或结构。但是新生成的模式被迫使测试用例失败并喊出“ERROR:null value in column“id”违反了not null约束”项目始于rails v5.0,当前版本为5.2,因此每次新迁移都会更改旧表,并更改“id”的类型和约束schema.rb中的列可能会询问有关stacktrace的堆栈溢出和预期行为的问题:)