【问题标题】:Role names are case sensitive in PostgresPostgres 中的角色名称区分大小写
【发布时间】:2015-02-22 15:47:14
【问题描述】:

让角色名称区分大小写的人都是邪恶的。

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

雪上加霜的是,psql 命令 -c "CREATE ROLE Michael ..." 可以创建角色,但都是小写的。

【问题讨论】:

    标签: ruby-on-rails postgresql roles case-sensitive


    【解决方案1】:

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

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

    【讨论】:

    • and then all my commands worked as my Windows user name was passed into the various processes. 哪些命令?哪些流程? (这些使用某种 ORM 吗?)
    • postgres 相关的命令,包括 dropdb 或 rails 命令,如 rake db:drop、db:reset。
    • 重点是:角色名遵循与表名或列名相同的大小写逻辑。要强制区分大小写匹配,您(或您的 ORM 逻辑)可以使用双引号。通常,对数据库对象使用区分大小写的名称被认为是一个坏主意。特别是如果中间件 (somtines) 自动引用标识符。
    • 我想使用命令行来做同样的事情。 @vbsql7 你找到方法了吗?因为我想稍后通过 pgAdmin 将角色创建放在脚本中,所以我不适合。
    • 我能给你的最好建议是让你的角色名称保持小写......因为这是 Postgres 将创建并尝试使用的。
    猜你喜欢
    • 2014-03-14
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 2014-02-17
    • 1970-01-01
    相关资源
    最近更新 更多