schema.rb 中的随机更改

Jen*_*a S 5 ruby-on-rails ruby-on-rails-4

我几个月来就注意到了这一点,但直到现在我才没有时间处理它。每当我的 CI 服务器自动执行git pull并重新启动 Rails 服务器时,它们schema.rb都会被随机修改。如下例所示,api_name某个表的列被删除。大约三个月前我放弃了这个专栏。与 相同transportation_charges。通常,该文件中的间距会发生变化:请参阅created_atupdated_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
Run Code Online (Sandbox Code Playgroud)

EJA*_*JAg 4

当您运行迁移时,架构不仅会通过迁移进行更新,还会通过当前数据库进行更新。我猜测您的一些开发人员正在使用与架构不一致的数据库。然后,每次他们运行迁移时,您都会得到意想不到的更改。