pgadmin:在 windows 文件夹中创建表空间

问题描述

我正在尝试在 Windows 文件夹中创建表空间,但似乎没有任何效果。 我正在使用 pgadmin 这样做。

CREATE TABLESPACE test
LOCATION 'C:\test'

This gives me error: 
ERROR:  tablespace location must be an absolute path 
sql state: 42P17

我尝试以不同的方式写位置:

'C:/test'
'C:\\test'
'C://test'

但没有什么能解决它。

问题出在哪里?

解决方法

有两件事需要验证,你还没有说清楚:

  1. 您的数据库是否在 Windows Server 上运行?
  2. 您实际上已经创建了文件夹吗?

在您的情况下,这两个条件都是必要的。表空间的创建并不像分配的那样多。 create 只创建 Postgres 内部定义而不是物理实现。从Documentation

该位置必须是一个现有的空目录,该目录归 PostgreSQL 操作系统用户。随后创建的所有对象 表空间内将存储在此下的文件中 目录。该位置不得位于可移动或临时存储上, 因为如果表空间丢失或集群可能无法运行 丢失了。