根据PostGIS文档,仅
PostGIS的某些打包发行版 ...将PostGIS函数加载到名为template_postgis的模板数据库中。
因此,并非每个发行版都随附template_postgis
。
如现有答案中所述,在PostGIS 2.x中,可以轻松地自己创建或自定义模板,方法是创建一个名为template_postgis
超级用户的常规数据库,然后创建所需的和可选的扩展名(例如pgRouting)。根据PostGIS文档:
sudo su postgres
createdb template_postgis
psql -d template_postgis -c "CREATE EXTENSION postgis;"
psql -d template_postgis -c "CREATE EXTENSION postgis_topology;"
-- if you built with sfcgal support --
psql -d template_postgis -c "CREATE EXTENSION postgis_sfcgal;"
此外,还可以通过设置标志这个新创建的数据库作为模板数据库datistemplate
系统表的标志pg_database
来ture
。
psql -d template_postgis -c "UPDATE pg_database SET datistemplate = 'true' WHERE datname = 'template_postgis';"
例如,这将防止模板数据库被其他用户或您自己意外删除或更改。(如果要更改模板,则需要将标志设置为false。)
然后,您可以根据在模板中输入的内容创建空间数据库:
createdb -T template_postgis my_spatial_db