Создание схемы в конкретной базе данных PostgreSQL 9.0
Быстрый ответ
Чтобы создать схему в PostgreSQL, необходимо изменить контекст работы с помощью команды \c your_db
и затем выполнить команду создания схемы CREATE SCHEMA your_schema;
.
\c your_db -- Меняем контекст на нужную базу данных
CREATE SCHEMA your_schema; -- Создаём новую схему
Начало работы с новой базой данных
Если вы начинаете работать с новой базой данных, сначала необходимо её создать. Затем переключитесь на неё и создайте нужную схему:
CREATE DATABASE foo; -- Создаем новую базу данных
\c foo -- Переходим в созданную базу данных
CREATE SCHEMA yourschema; -- Создаём схему
Перед созданием схемы проверьте, нет ли такой уже существующей, чтобы избежать конфликта имен.
CREATE SCHEMA IF NOT EXISTS yourschema; -- Если схема не существует, она будет создана
Если положить все команды в скрипт с использованием \connect
, он будет выглядеть аккуратно и удобно для выполнения:
CREATE DATABASE foo;
\connect foo
CREATE SCHEMA yourschema;
Эти шаги будут полезны независимо от того, выполняете ли вы действия вручную или используете автоматизированные скрипты.
Повторение действий с использованием скриптов
Для автоматизации повторяющихся действий можно использовать .sql-скрипт. В нём не забудьте указать контекст базы данных с помощью команды \connect
:
CREATE DATABASE projectdb; -- Создание новой базы данных
\connect projectdb -- Переключение на неё
CREATE SCHEMA project_schema AUTHORIZATION db_user; -- Создание схемы с указанием выбранного пользователя в качестве владельца
Для запуска скрипта используйте командную строку:
psql -f setup_script.sql -- Запуск скрипта
Визуализация
Схема организации данных в PostgreSQL похожа на библиотеку с различными залами (базами данных), каждый из которых посвящён отдельной теме:
Библиотека (🏛️): [Зал 1 (db_1), Зал 2 (db_2), Зал 3 (db_3)]
Вы решили создать новый раздел (схему) в Зале 2 (db_2)
:
-- Переходим в Зал 2
\c db_2
-- Создаем в нем новый раздел
CREATE SCHEMA new_section;
Теперь посетители Зала 2
обнаружат следующие изменения:
Зал 2 (db_2): До – [📚, 🗞️]
Зал 2 (db_2): После – [📚, 🗞️, 🔖 (new_section)]
Ваш вклад в организацию базы данных неоценим!
Управление схемами
В процессе работы база данных может разрастаться, и появится потребность в изменении существующей схемы или создании новых. Вот несколько команд для работы со схемами:
Для просмотра текущих схем отправьте запрос к
information_schema.schemata
:SELECT schema_name FROM information_schema.schemata; -- Получаем список всех схем
Если необходимо переименовать существующую схему, используйте
ALTER SCHEMA
:ALTER SCHEMA old_schema RENAME TO new_schema; -- Переименовываем схему
Когда решите, что схема вам уже не нужна, вы можете её удалить:
DROP SCHEMA if_exists_schema CASCADE; -- Удаляем схему
Опция
CASCADE
удаляет все входящие объекты, поэтому будьте аккуратны с этой командой!
Создание схемы с ориентацией на роли
Привлечение пользователей к управлению схемами помогает осуществлять контроль доступа. При создании схемы вы можете указать владельца и назначить права:
Чтобы создать схему и назначить права доступа:
CREATE SCHEMA user_schema; GRANT ALL ON SCHEMA user_schema TO some_user; -- Назначаем права доступа пользователю
Или создайте схему сразу с указанием пользователя владельца:
CREATE SCHEMA user_schema AUTHORIZATION some_user; -- Создаем схему и указываем владельца
Устанавливая правила, вы обеспечиваете порядок и безопасность в вашей базе данных.
Полезные материалы
- PostgreSQL: Documentation: 16: CREATE SCHEMA — Официальная документация PostgreSQL по команде CREATE SCHEMA.
- PostgreSQL: Documentation: 16: psql — Информация об использовании psql для подключения к PostgreSQL.
- Postgres setup | dbt Developer Hub — Подробное руководство по настройке схем в PostgreSQL с использованием dbt (data build tool).
- Schema Dialog — pgAdmin 4 8.3 documentation — Руководство по управлению схемами в PostgreSQL с помощью pgAdmin, распространённого инструмента среди администраторов баз данных.