1.2. PostgreSQL
1С поддерживает работу с PostgreSQL. На официальном сайте (https://www.postgresql.org/download/) необходимо выбрать раздел операционной системы, который у вас установлен. После чего скачать установщик последней версии. На момент написания руководства, это 16 версия. После скачивания запустите установщик. Запишите где-нибудь пароль суперпользователя (postgres), который вы назначите при установке, он понадобится при настройке.
Настройка PostgreSQL выполняется через командную строку (cmd):
1. Запустите командную строку и перейдите в директиву «%PostgreSQL_HOME%/bin».
К примеру, «cd C:\Program Files\PostgreSQL\16\bin».
2. Попытайтесь запустить сервер, указав в параметре путь - путь к папке data в корневой папке Postgres.
«pg_ctl.exe start -D "%PostgreSQL_HOME%\data"»
К примеру: «pg_ctl.exe start -D "C:\Program Files\PostgreSQL\16\data"»
3. Откройте PSQL от лица суперпользователя (пользователя, который был указан в процессе установки «psql -U postgres»). Понадобится ввести пароль, который был задан в процессе установки (вводимые символы не будут отображаться).
По желанию можно ввести «\! chcp 1251» для корректного отображения текста на кириллице, на дальнейшую работу и действия никак не повлияет.
4. Создать пользователя и новую базу данных, которой пользователь будет владеть. (От лица создаваемого пользователя будет вестись администрирование и работа с медицинскими документами новой базы)
Имя пользователя, пароль и название базы тоже следует записать отдельно, они понадобятся в дальнейшей настройке.
ВНИМАНИЕ: В руководстве созданная база называется «doctordatabase», пользователь «doctoruser» и все дальнейшие настройки будут использовать эти названия.
Создание пользователя:
CREATE ROLE doctoruser PASSWORD '<Пароль>' NOSUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;
Создание базы (от лица суперпользователя):
CREATE DATABASE doctordatabase OWNER doctoruser;
Если по какой-либо причине создание базы кодом выше выдаёт ошибку, необходимо создать базу следующим способом:
От лица doctoruser написать:
create database doctordatabase;
GRANT ALL PRIVILEGES ON DATABASE "doctordatabase" to doctoruser;
(От лица суперпользователя):
ALTER DATABASE doctordatabase OWNER TO doctoruser;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO doctoruser;
GRANT ALL PRIVILegES ON ALL TABLES IN SCHEMA public TO doctoruser;
Для смены пользователя psql достаточно выйти из текущего пользователя (оказаться в директиве %PostgreSQL_HOME%/bin), а потом зайти обратно от лица другого пользователя «psql -U <Логин пользователя под которого заходим>»
5. Выйти из psql и, находясь в директиве %PostgreSQL_HOME%/bin ввести следующий код для создания таблиц и индексов из директив dcm4chee-arc-light:
psql -d doctordatabase -U doctoruser -f "%DCM4CHEE_ARC%/sql/psql/create-psql.sql"
psql -d doctordatabase -U doctoruser -f "%DCM4CHEE_ARC%/sql/psql/create-fk-index.sql"
psql -d doctordatabase -U doctoruser -f "%DCM4CHEE_ARC%/sql/psql/create-case-insensitive-index.sql")
