Go PostgreSQL with Gorm 区分大小写的问题

hbm · 2020年09月17日 · 最后由 hbm 回复于 2020年09月17日 · 1502 次阅读

PostgreSQL 不区分大小写,大家推荐的方案或者用 citext, 或者自定义的 validator

但是我用 gorm 作为 orm,没有看到 gorm 的支持,请教大家

为何你不用小写来建表?

用一个额外的字段,然后 index UserName_LowerCase, 查询的时候把 Lower(UserName)作为 key 对吗?

UserName varchar
UserName_LowerCase varchar 

gorm 最终不是转换成 sql 执行的吗?只要你创建表时 column 设定加上 CITEXT 就可以了啊

如果你是说 gorm 定义 struct 时指定 citext 这个就不清楚了,官方问比较好。

俺们 rails 内,就很简单了,我们的口号是”能不刀耕火种,就不刀耕火种" 😀

ActiveRecord::Schema.define(version: 2020_05_04_062010) do

enable_extension "citext"

create_table "users", force: :cascade do |t|
    t.citext "login", null: false
    t.citext "name"
    t.citext "email", null: false
 end
end

rails 的确很好。在 rails 和 go 之间纠结了很长时间,甚至都学了基本的 ruby 和 rails agile, 最终还是忍痛放弃了.. 还是希望项目将来对新人和对团队更容易上手。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号