Определение табличного пространства Postgres, если Linux или Windows - PullRequest
0 голосов
/ 01 октября 2018
  • У нас есть собственный скрипт инициализации, который работает для Windows.
  • Они создают базу данных dev и настраивают некоторых тестовых пользователей.
  • Некоторые разработчики работают над установкой на основе linux, но они касаются сценариев каждый раз при настройке базы данных.

Можно ли обнаружить в postgresql, работает ли он на windows или linux?Или можно сделать запасной вариант для создания табличного пространства?В настоящее время он работает для Windows:

CREATE TABLESPACE foo_bar LOCATION 'C:\foo_bar_tablespace';

I, чтобы использовать что-то вроде:

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 голосов
/ 02 октября 2018

Если вы являетесь суперпользователем, безопасный способ определить, находитесь ли вы в Windows, где имена путей начинаются с заглавной буквы, за которой следует `: \ ', будут:

SELECT current_setting('data_directory') SIMILAR TO '[A-Z]:\\%' AS is_windows;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...