×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

3.7.3. Шаблонные базы данных

CREATE DATABASE в действительности работает путем копирования существующей базы данных. По умолчанию копируется стандартная системная база данных с именем template1. Таким образом, эта база данных служит «шаблоном» , на основе которого создаются новые базы данных. Если добавить объекты в template1, эти объекты будут копироваться во все создаваемые впоследствии пользовательские базы данных. Такой механизм позволяет вносить локальные изменения в стандартный набор объектов в базах данных. Например, если установить процедурный язык PL/Perl в template1, он будет автоматически доступен в пользовательских базах данных без каких-либо дополнительных действий при их создании.

Однако, CREATE DATABASE не копирует разрешения уровня базы данных, GRANT назначенные исходной базе данных. Новая база данных имеет разрешения уровня базы данных по умолчанию.

Существует вторая стандартная системная база данных под названием template0. Эта база данных содержит те же данные, что и исходное содержимое template1, то есть только стандартные объекты, предопределенные вашей версией Digital Q.DataBase. template0 не должны изменяться после того, как кластер баз данных был инициализирован. Давая указание CREATE DATABASE скопировать template0 вместо template1, вы можете создать «чистую» пользовательскую базу данных (в которой отсутствуют пользовательские объекты и системные объекты не были изменены), не содержащую локальных дополнений из template1. Это особенно удобно при восстановлении pg_dump дампа: сценарий дампа должен быть восстановлен в чистой базе данных, чтобы обеспечить корректное воссоздание содержимого базы данных из дампа без конфликтов с объектами, которые могли быть добавлены в template1 позднее.

Другой распространенной причиной копирования template0 вместо template1 является то, что при копировании можно указать новые параметры кодировки и локали template0, тогда как копия template1 должна использовать те же настройки, что и исходная база данных. Это связано с тем, что template1 может содержать данные, специфичные для определенной кодировки или локали, в то время как template0 заведомо их не содержит.

Чтобы создать базу данных путем копирования template0, используйте команду:

CREATE DATABASE dbname TEMPLATE template0;

из SQL-среды или:

createdb -T template0 dbname

из командной оболочки.

Можно создавать дополнительные шаблонные базы данных; более того, допускается копирование любой базы данных в кластере путем указания её имени в качестве шаблона для функции CREATE DATABASE. Однако важно понимать, что данный механизм (пока) не предназначен для использования в качестве универсального средства «COPY DATABASE» . Основное ограничение заключается в том, что к исходной базе данных не должно быть других подключенных сеансов во время её копирования. CREATE DATABASE завершится ошибкой, если на момент начала выполнения команды существуют другие подключения; во время операции копирования создание новых подключений к исходной базе данных блокируется.

Для каждой базы данных существуют два полезных флага в pg_database для каждой базы данных: столбцы datistemplate и datallowconn. datistemplate могут быть установлены для указания того, что база данных предназначена в качестве шаблона для CREATE DATABASE. Если этот флаг установлен, база данных может быть клонирована любым пользователем с CREATEDB привилегиями; если же он не установлен, клонировать её могут только суперпользователи и владелец базы данных. Если datallowconn имеет значение false, то новые подключения к этой базе данных будут запрещены (однако существующие сессии не завершаются принудительно при установке флага в значение false). template0 база данных обычно помечается datallowconn = false для предотвращения её модификации. Обе template0 и template1 всегда должны быть помечены datistemplate = true.

Примечание

template1 и template0 не имеют специального статуса, за исключением того факта, что имя template1 является именем исходной базы данных по умолчанию для CREATE DATABASE. Например, можно удалить template1 и воссоздать её из template0 без каких-либо негативных последствий. Такой порядок действий может быть целесообразен, если в базу данных было добавлено большое количество лишних объектов в template1. (Чтобы удалить template1, её параметр pg_database.datistemplate = false.)

Согласно postgres база данных также создается при инициализации кластера баз данных. Данная база данных предназначена для использования в качестве базы данных по умолчанию при подключении пользователей и приложений. Она представляет собой копию template1 и может быть удалена и воссоздана при необходимости.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению