Схемы

Подскажите, как создать схему на основе уже существующей схемы?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Если я

Если я правильно понимаю то, что написано в Руководстве, то никак.
Схема - это не контейнер, включающий в себя таблицы, а как бы используя аналогию файловой системы - имя каталога.
Таким образом, вы может создать ещё одно имя каталога, но если вам нужны таблицы из другой схемы - копируйте их как файлы из одного каталога в другой. Помоему так.

Как будет быстрее?

А как побыстрее это сделать? Просто сроки поджимают... Нужно как-нибудь скопировать функции и таблицы из одной схемы в другую. Таблиц-то у меня только 2, а вот функций за 900 переваливает. Есть ли способ это по-быстрому сделать?

Например

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

Просто по

Просто по специфике задачи необходимо, чтобы функции в схеме были одни и те же, типы тоже. А данные должны быть разные. Насчет скрипта не понял немного - сможешь пояснить?

Берёшь Perl и

Берёшь Perl и модуль к нему DBI с драйвером для PostgreSQL - DBD::Pg
Выгружаешь дамп своей базы БЕЗ данных.
Удаляешь всё лишнее (что не надо создавать в каждой схеме)
А дальше пишешь на Perl'е скрипт по алгоритму (для каждого элемента из списка схем):
1. Создать схему
2. Сделать схему текущей
3. Выполнить создание ранее выгруженной структуры
и повторить с п.1

Я бы так сделал, хотя не претендую на рациональность такого решения - возможно можно и как-то по-другому, но на данном этапе я не знаю как.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023