Ruby on rails Postgres中的角色名称区分大小写

Ruby on rails Postgres中的角色名称区分大小写,ruby-on-rails,postgresql,roles,case-sensitive,Ruby On Rails,Postgresql,Roles,Case Sensitive,不管是谁让角色名区分大小写都是邪恶的 我花了几个小时试图弄明白为什么在Windows的DOS命令行中rake命令不起作用。当我清楚地知道是我创造了“迈克尔”这个角色时,这个错误一直在说这个角色不存在 雪上加霜的是,psql命令-c“CREATE ROLE Michael…”创建的角色是正确的,但都是小写 我最终使用pgAdmin将角色的第一个字母改为大写字母“M”,然后我所有的命令都作为我的Windows用户名传递到各个进程中 设计师——注意你在做什么!没有理由让角色名区分大小写。然后所有我的命

不管是谁让角色名区分大小写都是邪恶的

我花了几个小时试图弄明白为什么在Windows的DOS命令行中rake命令不起作用。当我清楚地知道是我创造了“迈克尔”这个角色时,这个错误一直在说这个角色不存在


雪上加霜的是,psql命令-c“CREATE ROLE Michael…”创建的角色是正确的,但都是小写

我最终使用pgAdmin将角色的第一个字母改为大写字母“M”,然后我所有的命令都作为我的Windows用户名传递到各个进程中


设计师——注意你在做什么!没有理由让角色名区分大小写。

然后所有我的命令都作为我的Windows用户名传递到各个进程。
哪些命令?哪些流程?(这些是否使用了某种ORM?)与postgres相关的命令,包括dropdb或rails命令,如rake db:drop、db:reset。要点是:角色名遵循与表名或列名相同的大小写逻辑。要强制进行区分大小写的匹配,您(或您的ORM逻辑)可以使用双引号。通常,对数据库对象使用区分大小写的名称被认为是一个坏主意。特别是如果中间件(SOMTINE)自动引用标识符,我想用命令行做同样的事情@vbsql7您找到这样做的方法了吗?因为我想在以后通过pgAdmin将角色创建放在脚本中,所以我不能选择使用它。我能给你的最好建议是将角色名称保持小写。。。因为这就是Postgres将创建并尝试使用的内容。