PostgreSQL - Как изменить табличное пространство по умолчанию pg_default
Коллеги всем привет.
В сегодняшней статье мы поговорим о том как изменить табличное пространство по молчанию с pg_default на свое в PostgreSQL.
В тот момент когда вы создаете какую-нибудь таблицу, то не явным образом сам PostgreSQL подставляет дополнительный параметр TABLESPACE pg_default, но если вы хотите чтобы таблицы создавались в другом табличном пространстве то можно эту сделать изменивши конфигурационный параметр default_tablespace.
Переменная default_tablespace устанавливает табличное пространство, которое будет использоваться по умолчанию, в котором будут создаваться объекты базы данных (таблицы и индексы). По умолчанию переменная имеет значения пустой строки, а это значит что все объекты базы данных будут создаваться в табличном пространстве pg_default. Если даже вы укажите какое-нибудь значения в переменную и окажется что такого табличного пространства не существует, то никакой ошибки не будет, а все объекты базы данных будут создаваться в табличном пространстве pg_default.
Еще очень важным нюансом есть то что эта переменная не используется для временных таблиц.
Содержимое статьи:
- Просмотр значения переменной default_tablespace.
- Установка нового значения переменной default_tablespace.
- Перезапуск база данных.
- Проверка.
- Итоги.
1. Просмотр значения переменной default_tablespace.
Перед тем как мы что-то будем менять, давайте для начала узнаем какое значения имеет переменная default_tablespace, для этого воспользуемся sql запрос.
sql> SELECT name, setting FROM pg_settings WHERE name = 'default_tablespace';
Как видим значения по умолчанию пустая строка.
2. Установка нового значения переменной default_tablespace.
Переменная default_tablespace является статической, и по этому нужно значения менять в конфигурационном файле postgresql.conf.
Открываем конфигурационный файл postgresql.conf и находим переменную default_tablespace.
После того так нашли переменную, то меняем значения на свое табличное пространство, в моем случаи я буду менять на inzhener_1.
3. Перезапуск базы данных.
После того как установили значения переменной необходимо перезапустить базу данных для того чтобы значения переменной применилось.
$. pg_ctl restart
4. Проверка.
После перезапуска базы данных необходимо проверить применилось ли наше значения переменной, для этого выполним тот же запрос, что и в первом пункте.
sql> SELECT name, setting FROM pg_settings WHERE name = 'default_tablespace';
5. Итоги.
После всего что мы сделали, теперь если вы будете создавать новые объекты в базе данных, то они будут создаваться не в табличном пространстве pg_default, а в том которое вы указали в переменной default_tablespace.
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.