我已经注意到这几个月,直到现在我才没有时间处理它。每当我的CI服务器执行自动git pull
并重新启动rails服务器时,schema.rb
会被随机修改。如下面的示例所示,某个表的api_name
列已被删除。我大约3个月前放弃了这个专栏。与transportation_charges
相同。通常,此文件中的间距会发生变化:请参阅created_at
和updated_at
。
特别令人讨厌,因为在下次运行时,当我的CI执行初始git pull
时,它会抱怨schema.rb
的更改并停止执行,直到它们被推送或恢复为止。它不仅仅是CI服务器。我也在其他开发者机器上看过这个。有没有人遇到过这个?
diff --git a/db/schema.rb b/db/schema.rb
index 470d3bf..166e3ee 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -883,7 +883,6 @@ ActiveRecord::Schema.define(version: 20170720211740) do
create_table "ups_package_service_options", force: :cascade do |t|
t.string "name"
- t.string "api_name"
t.string "type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
@@ -910,9 +909,8 @@ ActiveRecord::Schema.define(version: 20170720211740) do
t.string "code"
t.string "name"
t.string "api_name"
- t.decimal "transportation_charges"
- t.datetime "created_at", null: false
- t.datetime "updated_at", null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
t.boolean "domestic"
end
答案 0 :(得分:1)
运行迁移时,架构不仅会通过迁移进行更新,还会更新当前数据库。我猜你的一些开发人员正在使用与架构不一致的数据库。然后,每次运行迁移时,您都会收到意外的更改。