Описание
Дистрибутив представляет собой SQL-файл pghist_init.sql, который создает схему pghist с нужными процедурами.
Установка заключается в выполнении данного файла в терминальном клиенте psql или SQL-менеджере, например:
psql -d -mydb -f pghist_init.sql
Если разрабочики не обладают правами суперпользователя, необходимо выдать им права на использование схемы pghist и ее процедур.
Для этого используется SQL-скрипт pghist_grants.sql с переменной roles, например
psql -d -mydb -f pghist_grants.sql -v roles=developers
Также можно скачать полный zip-архив с документацией, примерами, расширением, скриптами установки, выдачи прав и удаления.
При промышленном использовании установка осуществляется из командной строки с использованием терминального клиента psql:
1. Загружается и выполняется файл pghist_init.sql
wget -O - https://pghist.org/files/download/pghist_init.sql | psql -d [database]
2. Выдаются права разработчикам (необязательно)
wget -O - https://pghist.org/files/download/pghist_grants.sql | psql -d [database] -v roles=[developers]
Пример установки в базу данных test
$ wget -O - https://pghist.org/files/download/pghist_init.sql | psql -d test --2024-04-02 19:39:28-- https://pghist.org/files/download/pghist_init.sql Resolving pghist.org (pghist.org)... 194.67.205.60 Connecting to pghist.org (pghist.org)|194.67.205.60|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 45527 (44K) [application/octet-stream] Saving to: ‘STDOUT’ 100%[=================================================>] 45,527 --.-K/s in 0s 2024-04-02 19:39:28 (97.7 MB/s) - written to stdout [45527/45527] CREATE SCHEMA CREATE FUNCTION CREATE TABLE CREATE TABLE CREATE TABLE CREATE TABLE DO CREATE FUNCTION CREATE FUNCTION CREATE PROCEDURE CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE PROCEDURE CREATE FUNCTION CREATE FUNCTION DO CREATE PROCEDURE CREATE PROCEDURE CREATE FUNCTION CREATE FUNCTION CREATE PROCEDURE CREATE FUNCTION CREATE FUNCTION DO $ wget -O - https://pghist.org/files/download/pghist_grants.sql | psql -d test -v roles=developer_1 --2024-04-02 19:40:46-- https://pghist.org/files/download/pghist_grants.sql Resolving pghist.org (pghist.org)... 194.67.205.60 Connecting to pghist.org (pghist.org)|194.67.205.60|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 1174 (1.1K) [application/octet-stream] Saving to: ‘STDOUT’ 100%[==============================================================>] 1,174 --.-K/s in 0s 2024-04-02 19:40:46 (111 MB/s) - written to stdout [1174/1174] GRANT GRANT GRANT GRANT GRANT GRANT GRANT GRANT GRANT GRANT GRANT GRANT GRANT GRANT GRANT
При установке инструмента в виде расширения необходимо распаковать архив pghist_extension.tar в директорию [sharedir]/extension установки postgres и создать расширение в базе данных, например (выполняется от root):
su - postgres -c "pg_config --sharedir"
tar xf pghist_extension.tar -C /usr/pgsql-14/share/extension
psql -U postgres -d mydb -c "create extension pghist"
Пример установки и создания в базе данных test
[root@pgsuite ~]# wget -O - https://pghist.org/files/download/pghist_extension.tar | tar x -C `su - postgres -c "pg_config --sharedir"`/extension --2024-08-22 15:37:49-- https://pghist.org/files/download/pghist_extension.tar Resolving pghist.org (pghist.org)... 194.67.205.60 Connecting to pghist.org (pghist.org)|194.67.205.60|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 51200 (50K) [application/octet-stream] Saving to: ‘STDOUT’ 100%[=====================================================================================================>] 51,200 --.-K/s in 0.001s 2024-08-22 15:37:49 (71.0 MB/s) - written to stdout [51200/51200] [root@pgsuite ~]# psql -U postgres -d test -c "create extension pghist" CREATE EXTENSION
Исходный код выложен в репозиторий GitHub
PGHist распространяется под Лицензией MIT (лицензия открытого и свободного программного обеспечения).
Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное обеспечение»), безвозмездно использовать Программное обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также лицам, которым предоставляется данное Программное обеспечение, при соблюдении следующих условий:
Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного обеспечения.
ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.