Ada*_*tan 2 schema postgresql datatypes
我有一个经典的 3 环境设置(开发、暂存和生产),每个环境都有自己的RDS PostgreSQL 9.3。客户端/服务器版本是psql (9.3.5, server 9.3.3).
为了保持模式对齐,我有一个周期性的模式差异作业,当模式不同时它会通知我。
几天前,我开始收到许多这些差异:
CREATE TABLE ...
...
< title pg_catalog.text,
< subtitle pg_catalog.text,
---
> title text,
> subtitle text,
Run Code Online (Sandbox Code Playgroud)
textstaging 中的字段以某种方式转换为pg_catalog.textprod。
text和 和有pg_catalog.text什么区别?如何将这两个模式等同起来?
它们在默认安装中是相同的。
pg_catalog.text是类型名称的模式限定版本text。
该search_path 总是包含pg_catalog自动。根据文档:
除了
public用户创建的模式之外,每个数据库还包含一个pg_catalog模式,其中包含系统表和所有内置数据类型、函数和运算符。pg_catalog始终是搜索路径的有效组成部分。如果它没有在路径中显式命名,那么在搜索路径的模式之前会隐式搜索它。这可确保始终可以找到内置名称。但是,如果您希望用户定义的名称覆盖内置名称,则可以明确地将其放置pg_catalog在搜索路径的末尾。
大胆强调我的。如果你做这样的事情,Postgres 将自动在文本表示中启动模式限定名称,否则会以不同的方式解析。这很可能是你看到的。检查您的电流search_path:
SHOW search_path;
Run Code Online (Sandbox Code Playgroud)
密切相关: