Postgres表空间检测Linux还是Windows

时间:2018-10-01 14:18:05

标签: postgresql

  • 我们有适用于Windows的自定义初始化脚本。
  • 他们创建dev数据库并设置一些测试用户。
  • 一些开发人员正在基于Linux的安装上工作,但是每次设置数据库时,他们都会接触脚本。

如果在Windows或Linux上运行,是否可以在postgresql中进行检测?还是可以对表空间创建进行回退? 目前适用于Windows:

CREATE TABLESPACE foo_bar LOCATION 'C:\foo_bar_tablespace';

我要使用类似的东西

IF onWindows THEN
    CREATE TABLESPACE foo_bar LOCATION 'C:\foo_bar_tablespace';
ELSE
    CREATE TABLESPACE foo_bar LOCATION '/var/lib/postgresql/data/foo_bar_tablespace';
END IF;

这有可能吗?

1 个答案:

答案 0 :(得分:2)

如果您是超级用户,那么一种安全的方式来判断您是否在Windows上,路径名称以大写字母开头,后跟“:\”将是:

SELECT current_setting('data_directory') SIMILAR TO '[A-Z]:\\%' AS is_windows;