Развертывание базы данных
При установке через скрипт bs_setup.sh контейнер PostgreSQL запускается автоматически, а развертывание базы данных выполняется в рамках самого процесса установки: инсталлятор предлагает выбрать, какую базу развернуть — демонстрационную, пустую, либо сразу обе базы из комплекта поставки.
Если впоследствии требуется развернуть дополнительную базу данных — например, изначально была развернута демонстрационная база, а позже понадобилась ещё и пустая (empty_ru) — это можно сделать через скрипт bs_menu.sh (раздел «Обслуживание» → «Управление Базой Данных (deploy-db.sh)»), не переустанавливая систему заново. В этом разделе доступны пункты:
Редактировать deploy-db.sh— открывает файл скрипта в редакторе для ручной тонкой настройки параметров перед запуском.Запустить deploy-db.sh- запускает скрипт с заданными параметрами.Развернуть демонстрационную базуиРазвернуть пустую базу— разворачивают соответствующую базу из комплекта поставки с параметрами из .env (пользователь, пароль, лицензионный сервер);Развернуть обе базы— разворачивает демонстрационную и пустую базу последовательно;Развернуть свою Базу Данных— интерактивный сценарий для развёртывания произвольной базы из своего файла бэкапа, с ручным вводом имени базы, пользователя, пароля и лицензионного сервера;
При выборе любого из пунктов развертывания скрипт bs_menu.sh сам выставляет права на запуск deploy-db.sh, подставляет нужные параметры и, если база с таким именем уже существует, запрашивает подтверждение на её пересоздание — вручную запускать контейнер PostgreSQL, выдавать права на файл или вводить команды deploy-db.sh –start не требуется.
При повторном запуске установки (переустановке) через bs_setup.sh также доступен выбор: перезаписать существующую базу данных (если она уже была развернута) либо развернуть другую базу вместо неё.
Если требуется более гибкая настройка — например, развернуть собственную базу данных с указанием произвольных параметров подключения, то можно воспользоваться пунктом Развернуть свою Базу Данных в том же разделе bs_menu.sh и Запустить deploy-db.sh либо отредактировать файл deploy-db.sh вручную, заполнив необходимые поля. Порядок действий для такого расширенного варианта развертывания описан ниже.
Внимание! При первоначальной установке через bs_setup.sh параметры подключения к базе данных (из комплекта поставки) автоматически записываются в файл appsettings.json. Однако если база данных разворачивается или пересоздаётся после установки через bs_menu.sh или ручной запуск deploy-db.sh, то эти изменения в appsettings.json автоматически не попадают. В таком случае необходимо самостоятельно проверить и при необходимости поправить параметры подключения в файле appsettings.json(см. Настройка файла appsettings.json), чтобы они совпадали с тем, что было указано при развертывании базы.
Подготовка файла бэкапа
Для развертывания базы данных (в том числе через bs_menu.sh) требуется файл дампа в формате .pg, размещённый в директории ./DockerCompose/Postgres/Backup/.
Файл базы данных можно взять из архива bs_dbs_<номер_версии_базы>.zip из комплекта поставки программы. В нем находятся как демонстрационные, так и пустые базы.
Примечание: также есть возможность продолжить работу с базами, которые вы использовали в прошлой версии программы (Business Studio 6). Для этого выполните конвертацию баз данных (см. Конвертация базы данных).
Базы данных можно хранить на текущем сервере либо перенести на другой, включая сервер с развернутым Docker-контейнером PostgreSQL. Для переноса скопируйте файлы и разместите их в папке ../Backup/.
При развертывании через пункты «Развернуть демонстрационную базу» / «Развернуть пустую базу» / «Развернуть обе базы» скрипт bs_menu.sh сам подбирает подходящий файл бэкапа из этой папки по имени (demo_ru.pg / empty_ru.pg). При развертывании через «Развернуть свою Базу Данных» нужный файл .pg выбирается интерактивно из списка либо указывается вручную полным путём.
Скрипт выполняет следующие действия:
- Проверяет наличие файла базы данных и доступ к Docker-контейнеру. Если такая база данных уже существует — выполнение будет остановлено (либо, в интерактивном режиме bs_menu.sh, запрошено подтверждение на пересоздание), чтобы предотвратить потерю данных.
- При обнаружении уже существующей базы с таким именем спрашивает о перезаписи, данная функция относится и к ручному запуску и к запуску через пункты
«Развернуть демонстрационную/пустую/обе базы/Запустить deploy-db.sh», где дополнительно автоматически используется флаг--FORCE-DROP-EXISTING-DATABASE. При подтверждении перезаписи скрипт принудительно завершает все активные сессии и пересоздаёт базу данных. - Отображает индикатор прогресса восстановления базы данных в консоли.
- Восстанавливает структуру и данные базы.
- Автоматически создаёт необходимые роли и назначает пользователю права владельца на все таблицы, функции, процедуры и последовательности.
- Обновляет IP-адрес сервера лицензий в таблице
public.pinger. - Логирует все действия в отдельный файл.
Примечание: отчет о работе скрипта сохраняется автоматически в лог-файл deploy-db_<дата_время>.log.
Ручное развертывание (без bs_menu.sh)
При необходимости скрипт deploy-db.sh можно запустить и напрямую, минуя bs_menu.sh. Скрипт находится по пути ./DockerCompose/Postgres/Initdb и адаптирован под работу в Docker-контейнере.
Для этого:
Откройте скрипт на редактирование и заполните следующие поля:
CONTAINER— имя контейнера (postgresql).DB_NAME— имя создаваемой или обновляемой базы.BACKUP_DEFAULT— путь до файла базы.NEW_USERиNEW_PASS— учетная запись, через которую приложение будет работать с базой.LICENSE— IP-адрес машины, на которой была активирована лицензия (см. Настройка сервера лицензий).
Запустите развертывание командой:
./deploy-db.sh --start
Внимание! Если вы хотите перезаписать базу данных (удалить существующую и создать на ее месте новую), добавьте к команде ключ --FORCE-DROP-EXISTING-DATABASE. Команда примет следующий вид: ./deploy-db.sh --start --FORCE-DROP-EXISTING-DATABASE
Рекомендованная схема раздачи прав в Business Studio
Раздача прав осуществляется под пользователем с правами администратора сервера баз данных.
Для раздачи прав в Business Studio:
- Запустите десктопное приложение Business Studio (см. Десктопное приложение Business Studio) под пользователем с правами администратора сервера баз данных и выберите базу данных. При первом входе в базу данных пользователь автоматически получает группу вертикальных прав "Права администратора" и доступ к меню пользователя, так как по умолчанию включена автораздача прав (см. Автоматическая раздача прав).
- Настройте права на группы пользователей, соответствующие их должностям и ролям (группы Keycloak, Active Directory или другие, в зависимости от используемой системы авторизации):
- Вертикальные права (см. Права пользователя);
- Горизонтальные права (см. Горизонтальные права).
- Отключите автоматическую раздачу прав.
При использовании данной схемы раздача прав новым пользователям сводится к включению их в соответствующие группы.
Часто встречающиеся проблемы и рекомендации к работе
Рекомендация №1: для корректной работы Business Studio 7 все подключённые базы данных должны использовать один и тот же сервер лицензий (см. Настройка сервера лицензий).
Рекомендация №2: скрипт ./deploy-db.sh --start автоматически приводит имена баз и пользователей к нижнему регистру (строчные буквы). Это сделано для того, чтобы избежать ошибок авторизации в Linux и PostgreSQL. При настройке подключения в файле appsettings.json также рекомендуется использовать только нижний регистр.