【发布时间】:2020-05-28 04:37:25
【问题描述】:
我的一个表中有两列需要将其从字符串转换为布尔值。对象已经将数据附加到这些列(yes、no 或 nil),因此需要将 yes 结果转换为 true 并将 no/nil 转换为 false。
我正在为 change_column 运行一个简单的迁移,但这显然不是可行的方法,我无法找到解决方案。
我的表如下,两列分别是inner_sleeve和inserts。
create_table "listings", force: :cascade do |t|
t.string "front_cover"
t.bigint "version_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "back_cover"
t.string "front_label"
t.string "back_label"
t.integer "step", default: 0
t.string "cover_conditions", default: [], array: true
t.string "cover_grading"
t.text "cover_info"
t.boolean "original_sleeve"
t.string "disc_grading"
t.text "disc_info"
t.string "inner_sleeve"
t.string "inserts"
t.text "inner_inserts_info"
t.text "other_info"
t.bigint "user_id"
t.string "disc_conditions", default: [], array: true
t.integer "status", default: 0
t.date "first_active_at"
t.boolean "order_dispatched", default: false
t.bigint "purchaser_id"
t.index ["purchaser_id"], name: "index_listings_on_purchaser_id"
t.index ["user_id"], name: "index_listings_on_user_id"
t.index ["version_id"], name: "index_listings_on_version_id"
end
谢谢!
【问题讨论】:
-
这篇文章有帮助吗? stackoverflow.com/questions/26344257/…
-
很遗憾没有。我收到以下错误:
PG::DatatypeMismatch: ERROR: column "inner_sleeve" cannot be cast automatically to type boolean
标签: ruby-on-rails ruby postgresql boolean migration