Автоматическое определение версии локальной базы данных¶
После выполнения команды staffcop init
автоматически заполняется файл конфигурации базы данных /etc/staffcop/db_profile.
Определение настроек происходит для баз данных:
PostgreSQL 11,
PostgreSQL 15,
Jatoba 4,
Jatoba 5.
Например, для PostgreSQL 15 он имеет вид:
PSQL_VERSION=15
PSQL_BIN_DIR=/usr/lib/postgresql/15/bin
PSQL_LIB_DIR=/usr/lib/postgresql/15/lib
PSQL_SHARE_DIR=/usr/share/postgresql/15
PSQL_CONF_PATH=/etc/postgresql/15/main/postgresql.conf
PSQL_DATA_DIR=/var/lib/postgresql/15/main
PSQL_HBA_PATH=/etc/postgresql/15/main/pg_hba.conf
PSQL_TSEARCH_DIR=/usr/share/postgresql/15/tsearch_data
PSQL_HYPERSCAN=hyperscan.so.15
PSQL_SERVICE=postgresql
Описание параметров файла /etc/staffcop/db_profile
-
PSQL_VERSION=15 — указывает на установленную версию базы данных PostgreSQL.
-
PSQL_BIN_DIR=/usr/lib/postgresql/15/bin — путь к исполняемым файлам, включая серверный демон (postgres), клиентскую утилиту (psql) и другие программы (pg_dump, pg_restore, pg_ctl).
-
PSQL_LIB_DIR=/usr/lib/postgresql/15/lib — директория с динамическими библиотеками для работы PostgreSQL. Эти файлы содержат функции и модули, которые используются сервером и сторонними расширениями.
-
PSQL_SHARE_DIR=/usr/share/postgresql/15 — каталог с общими данными PostgreSQL. В него входят справочные файлы, SQL-скрипты, локализации и шаблоны конфигураций.
-
PSQL_CONF_PATH=/etc/postgresql/15/main/postgresql.conf — основной файл конфигурации сервера. В нем заданы настройки PostgreSQL, влияющие на производительность и поведение сервера. Например, параметры сети, памяти, журналирование.
-
PSQL_DATA_DIR=/var/lib/postgresql/15/main — каталог, в котором инициализируется кластер баз данных. В нем хранятся все данные: таблицы, индексы, системные каталоги, журналы транзакций (WAL) и другие созданные при инициализации с помощью утилиты initdb файлы.
-
PSQL_HBA_PATH=/etc/postgresql/15/main/pg_hba.conf — файл конфигурации для аутентификации пользователей (HBA – host-based authentication). Определяет, какие пользователи и хосты могут подключаться к серверу и какие методы аутентификации применяются (пароли, сертификаты).
-
PSQL_TSEARCH_DIR=/usr/share/postgresql/15/tsearch_data — каталог с данными для текстового поиска, включая словари и правила для полнотекстового поиска PostgreSQL.
-
PSQL_HYPERSCAN=hyperscan.so.15 — указывает на динамическую библиотеку Hyperscan, которая используется в PostgreSQL для высокопроизводительного сопоставления регулярных выражений. Эта библиотека применяется в расширениях или функциях, требующих быстрого анализа текстовых данных.
-
PSQL_SERVICE=postgresql — имя системного сервиса PostgreSQL. Используется для управления сервером через системные утилиты systemctl или service (запуск, остановка, перезапуск).
Изменение файла¶
При изменении локальной базы или версии базы рекомендуем сделать копию файла db_profile, чтобы сохранить старые настройки. Добаьте в название версию базы данных и сделайте бэкап. Затем удалите исходный файл вручную, потому что он не удаляется автоматически.
После изменения файла перезапустите сервер:
staffcop restart
При выполнении команды staffcop init
система создаст новый файл db_profile с актуальными настройками.
Удаленная база данных¶
Если при переносе БД на удаленный хостинг стандартные пути не меняются, файл db_profile можно оставить без изменений.
Если база другая — например, версия PostgreSQL или Jatoba отличается, — укажите в файле db_profile правильные настройки вручную. Это связано с тем, что при работе с удаленным сервером система не может автоматически определить все пути и настройки, как это происходит для локальной базы данных.
После внесения изменений в файл перезапустите сервер:
staffcop restart
Стандартные настройки баз данных¶
Используйте эти настройки при изменении файла db_profile.
Примечание
Важно указать правильную версию Hyperscan, потому что она зависит от версии вашей базы данных.
PostgreSQL 11¶
PSQL_VERSION=11
PSQL_BIN_DIR=/usr/lib/postgresql/11/bin
PSQL_LIB_DIR=/usr/lib/postgresql/11/lib
PSQL_SHARE_DIR=/usr/share/postgresql/11
PSQL_CONF_PATH=/etc/postgresql/11/main/postgresql.conf
PSQL_DATA_DIR=/var/lib/postgresql/11/main
PSQL_HBA_PATH=/etc/postgresql/11/main/pg_hba.conf
PSQL_TSEARCH_DIR=/usr/share/postgresql/11/tsearch_data
PSQL_HYPERSCAN=hyperscan.so.11
PSQL_SERVICE=postgresql
Jatoba 4¶
PSQL_VERSION=jatoba-4
PSQL_BIN_DIR=/usr/jatoba-4/bin
PSQL_LIB_DIR=/usr/jatoba-4/lib
PSQL_SHARE_DIR=/usr/jatoba-4/share
PSQL_CONF_PATH=/var/lib/jatoba/4/data/postgresql.conf
PSQL_DATA_DIR=/var/lib/jatoba/4/data
PSQL_HBA_PATH=/var/lib/jatoba/4/data/pg_hba.conf
PSQL_TSEARCH_DIR=/usr/jatoba-4/share/tsearch_data
PSQL_HYPERSCAN=hyperscan.so.14
PSQL_SERVICE=jatoba-4
Jatoba 5¶
PSQL_VERSION=jatoba-5
PSQL_BIN_DIR=/usr/jatoba-5/bin
PSQL_LIB_DIR=/usr/jatoba-5/lib
PSQL_SHARE_DIR=/usr/jatoba-5/share
PSQL_CONF_PATH=/var/lib/jatoba/5/data/postgresql.conf
PSQL_DATA_DIR=/var/lib/jatoba/5/data
PSQL_HBA_PATH=/var/lib/jatoba/5/data/pg_hba.conf
PSQL_TSEARCH_DIR=/usr/jatoba-5/share/tsearch_data
PSQL_HYPERSCAN=hyperscan.so.15.jatoba
PSQL_SERVICE=jatoba-5