Описание


Дистрибутив представляет собой SQL-файл pghist_init.sql, который создает схему pghist с нужными процедурами.
Установка заключается в выполнении данного файла в терминальном клиенте psql или SQL-менеджере, например:
psql -d -mydb -f pghist_init.sql

Download SQL
pghist_init.sql

Если разрабочики не обладают правами суперпользователя, необходимо выдать им права на использование схемы pghist и ее процедур.
Для этого используется SQL-скрипт pghist_grants.sql с переменной roles, например
psql -d -mydb -f pghist_grants.sql -v roles=developers

Также можно скачать полный zip-архив с документацией, примерами, расширением, скриптами установки, выдачи прав и удаления.

Download ZIP
pghist.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


Расширение (extension)

При установке инструмента в виде расширения необходимо распаковать архив 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

Исходный код выложен в репозиторий GitHub


Лицензия

PGHist распространяется под Лицензией MIT (лицензия открытого и свободного программного обеспечения).

Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное обеспечение»), безвозмездно использовать Программное обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также лицам, которым предоставляется данное Программное обеспечение, при соблюдении следующих условий:

Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного обеспечения.

ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.