以前,schema.rb是快速查看列默认值和它们是否可为空的好地方,但现在它变得凌乱。例如,这是一个用户表:
create_table "users", force: :cascade do |t|
t.string "name", null: false
t.string "email", null: false
t.string "locale", default: "en-ca", null: false
t.string "password_digest", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["email"], name: "index_users_on_email", unique: true, using: :btree
end
现在它看起来很糟糕,像这样:
create_table "users", id: :serial, force: :cascade do |t|
t.string "name", null: false
t.string "email", null: false
t.string "locale", default: "en-ca", null: false
t.string "password_digest", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["email"], name: "index_users_on_email", unique: true
end
为什么会发生这种情况,如何在保留诸如
id: :serial
和隐式 btree
等好变化的同时解决它?