Для установки Creatio вы можете использовать следующие конфигурации баз данных:
-
удаленная СУБД (рекомендуется);
-
локальный сервер PostgreSQL.
Если у вас уже настроен сервер PostgreSQL, то шаг I можно пропустить.
Если у вас уже есть пользователь с правами администратора для авторизации, создания и изменения баз данных, то шаг II можно пропустить.
I. Установить PostgreSQL
PostgreSQL недоступен в большинстве стандартных репозиториев. Чтобы установить PostgreSQL на Linux:
-
Войдите в систему как администратор (root):
- Добавьте репозиторий PostgreSQL:
- Импортируйте ключ подписи к репозиторию PostgreSQL:
- Обновите список пакетов:
- Установите PostgreSQL
-
Выйдите из root-сессии:
II. Создать пользователя PostgreSQL
Установленный PostgreSQL требует дополнительной настройки, прежде чем вы перейдете к развертыванию Creatio. После первичной установки PostgreSQL вам необходимо создать для него пользователя, который сможет подключаться к базе данных через логин и пароль и будет иметь права на создание и обновление баз данных. По умолчанию такого пользователя в PostgreSQL нет.
Рекомендуется создать следующих пользователей PostgreSQL:
- Пользователь с ролью ”admin” и неограниченными полномочиями на уровне сервера базы данных — нужен для восстановления базы данных и настройки доступа к ней.
- Обычный пользователь с ограниченными правами на уровне сервера. используется для настройки безопасного подключения Creatio к базе данных через аутентификацию средствами PostgreSQL.
Если у вас в PostgreSQL уже есть администратор и пользователь с ограниченными правами на уровне сервера базы данных, то данный шаг можно пропустить.
Чтобы создать пользователя PostgreSQL:
-
Войдите как postgres:
- Откройте оболочку PostgreSQL:
- Создайте пользователя pg_sysadmin, которому на уровне сервера будут предоставлены права администратора либо набор наиболее важных привилегий:
-
Настройте для пользователя pg_sysadmin права администратора:
В качестве альтернативы вы также можете предоставить ему только наиболее важные привилегии вместо прав администратора.
- Разрешите pg_sysadmin авторизацию:
-
Настройте пароль для pg_sysadmin:
pg_password— укажите пароль пользователя pg_sysadmin для подключения к серверу PostgreSQL.
- Создайте нового пользователя с ограниченными правами на уровне сервера базы данных:
-
Разрешите pg_user авторизацию:
-
Настройте пароль для pg_user:
pg_password — пароль пользователя pg_user для подключения к серверу PostgreSQL.
-
Выйдите из оболочки PostgreSQL.
-
Выйдите из своей сессии:
III. Восстановить из бэкапа базу данных PostgreSQL
Для восстановления базы данных из резервной копии необходимы утилиты psql и pg_restore. Они входят в пакет postgresql-client-common.
Если вы устанавливаете локально postgresql-12 с использованием apt-get, то APT установит postgresql-client-common как зависимость postgresql-12.
Если вы планируете использовать удаленную базу данных PostgreSQL, не устанавливая СУБД PostgreSQL на вашем сервере, то установите пакет postgresql-client-common вручную:
Чтобы развернуть базу данных из бэкапа:
-
Установите пароль подключения к серверу БД в переменную окружения:
pg_syspassword — укажите пароль пользователя с правами администратора или привилегиями “CREATE DATABASE”.
- Создайте базу данных, в которую будет выполнено восстановление резервной копии:
pg_server_port — укажите порт сервера PostgreSQL.
pg_sysadmin — укажите имя пользователя postgres для подключения к серверу PostgreSQL. Пользователь должен являться системным администратором (Superuser) или иметь права на создание базы данных (команда "CREATE DATABASE").
pg_user — псевдоним, который необходимо заменить именем пользователя с ограниченными правами на уровне сервера базы данных. Нужен для подключения к базе данных Creatio. Вы можете использовать для этого любого пользователя, не имеющего прав администратора на уровне сервера. Чтобы изменить пользователя, от имени которого выполняется подключение, следуйте инструкциям, изложенным в шаге IV данного руководства.
pg_dbname — укажите имя базы данных PostgreSQL, к которой необходимо подключиться для выполнения команды. Для корректного выполнения команды необходимо указать имя существующей базы данных. pg_dbname_creatio — укажите имя базы данных, которую будет использовать приложение Creatio. База данных будет создана после успешного выполнения команды. -
Если вы используете AWS RDS:
-
Скачайте скрипт ChangeTypesOwner.sql.
-
Замените в скрипте значение “postgres” на актуальное имя пользователя Postgres.
-
Выполните обновленный скрипт ChangeTypesOwner.sql.
-
-
Перейдите в папку приложения:
/path/to/application/directory/ — путь к папке, в которую распакован архив с установочными файлами Creatio.
-
Перейдите в папку БД:
-
Восстановите базу данных из бэкапа:
pg_server_address — укажите адрес сервера PostgreSQL.
pg_server_port — укажите порт сервера PostgreSQL.
pg_sysadmin — укажите имя пользователя postgres для подключения к серверу PostgreSQL. Пользователь должен являться системным администратором (Superuser) или иметь максимальные права на уровне базы данных pg_dbname_creatio.
pg_dbname_creatio — имя БД PostgreSQL, в которую будут добавлены таблицы резервной копии. Используйте имя базы данных, указанное в команде "CREATE DATABASE" на шаге 2.
/path/to/db.backup — путь к файлу с базой данных Creatio db.backup. - Скачайте файл CreateTypeCastsPostgreSql.sql.
-
Выполните преобразование типов:
pg_server_address — укажите адрес сервера PostgreSQL.
pg_server_port — укажите порт сервера PostgreSQL.
pg_sysadmin — укажите имя пользователя postgres для подключения к серверу PostgreSQL. Пользователь должен являться системным администратором (Superuser) или иметь максимальные права на уровне базы данных Сreatio.
pg_dbname_creatio — имя БД, в контексте которой происходит выполнение инструкций.
/path/to/CreateTypeCastsPostgreSql.sql — путь к сохраненному ранее файлу CreateTypeCastsPostgreSql.sql.
В результате база данных Creatio будет восстановлена из резервной копии.
IV. Изменить владельца базы данных (опционально)
В Creatio существует возможность при восстановлении из резервной копии заменить владельца БД и ее объектов на пользователя, не являющегося системным администратором (не Superuser). Вам потребуется скрипт ChangeDbObjectsOwner. Для Postgres версии 10 и ниже: Скачать скрипт. Для Postgres 11 и выше: Скачать скрипт.
Чтобы восстановить БД от имени пользователя, не являющегося администратором:
- Замените владельца БД:
pg_server_port — укажите порт сервера PostgreSQL.
pg_sysadmin — укажите имя пользователя postgres для подключения к серверу PostgreSQL. Пользователь должен являться администратором (Superuser) или иметь привилегии “ALTER DATABASE”.
pg_user — псевдоним, который необходимо заменить актуальным именем пользователя, который назначается новым владельцем БД. Под логином этого пользователя будет осуществляться подключение приложения к БД.
pg_dbname_creatio — имя БД, владелец которой заменяется. - Замените владельца объектов БД:
pg_server_port — укажите порт сервера PostgreSQL.
pg_sysadmin — укажите имя пользователя postgres для подключения к серверу PostgreSQL. Пользователь должен являться системным администратором (Superuser) или владельцем базы данных Сreatio.
pg_user — псевдоним, который необходимо заменить актуальным именем пользователя, который назначен новым владельцем БД. Под логином этого пользователя будет осуществляться подключение приложения к БД.
pg_dbname_creatio — имя БД, владелец которой заменяется.
/path/to/ChangeDbObjectsOwner.sql — путь к сохраненному ранее файлу toChangeDbObjectsOwner.sql.
Вы можете пропустить этот шаг, и в таком случае владельцем БД и ее объектов останется пользователь, от имени которого запускалась команда pg_restore. Обычно это пользователь postgres.