我确实搜索过,但无法获得明确的线索。postgres 中有“公共”模式。但是模式在哪里定义?我只在创建新数据库时看到它。我想知道的更多是它在哪里定义以及如何更改它。
提前致谢。
杨
我确实搜索过,但无法获得明确的线索。postgres 中有“公共”模式。但是模式在哪里定义?我只在创建新数据库时看到它。我想知道的更多是它在哪里定义以及如何更改它。
提前致谢。
杨
初始化数据库集群时,该命令在和数据库中public
创建模式。template0
template1
initdb
创建新数据库时template1
,除非您指定不同的模板,否则数据库将被复制(克隆)以创建新数据库。模板数据库的所有内容都被复制,因此新数据库以public
模式开始。
您可以自定义template1
数据库 - 或制作新数据库以用作模板,并使用命令TEMPLATE
选项指定它们CREATE DATABASE
。
请参阅有关模板数据库的文档。
如果您想要自定义模板,我建议您将新数据库作为模板并根据需要进行自定义。这对模式来说是完全合理DROP
的public
。
如您所料;它是在您创建数据库时创建的。
createdb
除了它是您获得的默认架构并且是默认的 search_path之外,没有什么特别之处。您可以自由使用DROP
它,创建另一个名为“public”的项目,或者在没有名为“public”的项目的情况下完全运行。
只要确保你的search_path中有一些有用的东西,否则你可能最终不得不整天输入完全限定的名称。