Описание
Дистрибутив представляет собой SQL-файл pgxls_init.sql, который создает схему pgxls с нужными процедурами.
Установка заключается в выполнении данного файла в терминальном клиенте psql или SQL-менеджере, например:
psql -d mydb -f pgxls_init.sql
Также можно скачать полный zip-архив с документацией, примерами, расширением, скриптами установки, выдачи прав и удаления.
Для удаления инструмента необходимо удалить схему pgxls, например:
psql -d mydb -c "drop schema if exists pgxls cascade"
При промышленном использовании установка осуществляется из командной строки с использованием терминального клиента psql, загружается и выполняется файл pghist_init.sql:
wget -O - https://pgxls.org/files/download/pgxls_init.sql | psql -d [database]
Пример установки в базу данных test
[postgres@pgsuite ~]$ wget -O - https://pgxls.org/files/download/pgxls_init.sql | psql -d test --2023-07-27 20:32:20-- https://pgxls.org/files/download/pgxls_init.sql Resolving pgxls.org (pgxls.org)... 194.67.205.60 Connecting to pgxls.org (pgxls.org)|194.67.205.60|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 65556 (64K) [application/octet-stream] Saving to: ‘STDOUT’ 100%[============================================================>] 65,556 --.-K/s in 0.002s 2023-07-27 20:32:20 (39.4 MB/s) - written to stdout [65556/65556] CREATE SCHEMA CREATE FUNCTION DO CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE PROCEDURE CREATE FUNCTION CREATE PROCEDURE DO CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE DO CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE FUNCTION CREATE FUNCTION CREATE PROCEDURE CREATE FUNCTION CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE FUNCTION CREATE PROCEDURE CREATE PROCEDURE GRANT GRANT GRANT
При установке инструмента в виде расширения необходимо распаковать архив pgxls_extension.tar в директорию [sharedir]/extension установки postgres и создать расширение в базе данных, например (выполняется от root):
su - postgres -c "pg_config --sharedir"
tar xf pgxls_extension.tar -C /usr/pgsql-14/share/extension
psql -U postgres -d mydb -c "create extension pgxls"
Пример установки и создания в базе данных test
[root@pgsuite ~]# wget -O - https://pgxls.org/files/download/pgxls_extension.tar | tar x -C `su - postgres -c "pg_config --sharedir"`/extension --2024-08-14 20:26:22-- https://pgxls.org/files/download/pgxls_extension.tar Resolving pgxls.org (pgxls.org)... 194.67.205.60 Connecting to pgxls.org (pgxls.org)|194.67.205.60|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 71680 (70K) [application/octet-stream] Saving to: ‘STDOUT’ 100%[====================================================================================================>] 71,680 --.-K/s in 0.001s 2024-08-14 20:26:22 (82.8 MB/s) - written to stdout [71680/71680] [root@pgsuite ~]# psql -U postgres -d test -c "create extension pgxls" CREATE EXTENSION
По умолчанию права на использование схемы pgxls и ее процедур выдаются роли public, т.е. всем пользователям.
Если необходимо выдать права только разработчикам, то можно использовать SQL-скрипт pgxls_dev_grants.sql с переменной roles, например:
psql -d -mydb -f pgxls_dev_grants.sql -v roles=developers
Пример переназначения прав в базе данных test
[postgres@pgsuite ~]$ wget -O - https://pgxls.org/files/download/pgxls_dev_grants.sql | psql -d test -v roles=developer_1 --2024-08-15 13:06:39-- https://pgxls.org/files/download/pgxls_dev_grants.sql Resolving pgxls.org (pgxls.org)... 194.67.205.60 Connecting to pgxls.org (pgxls.org)|194.67.205.60|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 322 [application/octet-stream] Saving to: ‘STDOUT’ 100%[======================================================================================>] 322 --.-K/s in 0s 2024-08-15 13:06:39 (33.0 MB/s) - written to stdout [322/322] REVOKE REVOKE REVOKE GRANT GRANT GRANT
Исходный код выложен в репозиторий GitHub
PGXLS распространяется под Лицензией MIT (лицензия открытого и свободного программного обеспечения).
Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное обеспечение»), безвозмездно использовать Программное обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также лицам, которым предоставляется данное Программное обеспечение, при соблюдении следующих условий:
Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного обеспечения.
ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.