Создание и обновление баз данных

Базы данных модулей Продукта создаются и обновляются с помощью утилиты Database Migrator. Она входит в стандартную поставку Продукта.

Создание пользователя PostgreSQL

Модули Продукта должны подключаться к PostgreSQL, используя назначенную учетную запись пользователя PostgreSQL.

Примечание

Если планируется использовать PostgreSQL, установленный на другой машине, то учетную запись пользователя следует получить от администратора установленного экземпляра PostgreSQL.

Для создания учетной записи в терминале нужно начать сессию от имени встроенного пользователя postgres, у которого есть права суперпользователя PostgreSQL:

sudo su - postgres

Теперь нужно создать пользователя для модулей Продукта. Этому пользователю нужно временно выдать права суперпользователя PostgreSQL. Они нужны для создания расширений в создаваемых базах данных. Позже права суперпользователя нужно отозвать.

Для создания пользователя нужно выполнить команду:

psql -c "CREATE USER xde WITH SUPERUSER PASSWORD '1234aA'"

где xde - пример имени пользователя, а 1234aA - пример пароля.

Далее нужно завершить сессию для postgres, выполнив команду:

exit

Предупреждение

Не используйте пароль из примера в продуктивной среде.
Не оставляйте права суперпользователя для учетной записи, которая используется модулями Продукта.
Это может привести к несанкционированному доступу к данным, в том числе к содержимому документов.

Примечание

Если это возможно, используйте более безопасный способ аутентификации, чем по логину и паролю. Перечень возможных вариантов, которые поддерживаются используемым в Продукте клиентом PostgreSQL, см. здесь.

Распаковка и настройка Database Migrator

Для распаковки утилиты Database Migrator нужно выполнить команду:

mkdir ~/Загрузки/TerraLink.xDEPro
unzip ~/Загрузки/TerraLink.xDEPro.DatabaseMigrator.3.2403.23131.1.zip -d ~/Загрузки/TerraLink.xDEPro

Примечание

Имя файла дистрибутива Database Migrator содержит версию Продукта. В примере использована версия 3.2403.23131.1.

Теперь нужно настроить подключение Database Migrator к PostgreSQL. Для этого требуется скопировать демонстрационный конфигурационный файл с шаблоном подключения к PostgreSQL в конфигурационный файл, который будет использоваться Database Migrator:

cp ~/Загрузки/TerraLink.xDEPro/DbMigrator/appsettings.PostgreSql.json.demo ~/Загрузки/TerraLink.xDEPro/DbMigrator/appsettings.json

Далее нужно открыть конфигурационный файл в текстовом редакторе:

nano ~/Загрузки/TerraLink.xDEPro/DbMigrator/appsettings.json

найти поле ConnectionString и задать имя пользователя и пароль назначенной учетной записи:

{
    "ProviderName": "Npgsql",
    "ConnectionString": "User ID=xde;Password=1234aA;Host=localhost;Port=5432;Database=DOCFLOW_DB;MaxPoolSize=500"
}

Затем нужно сохранить файл (Ctrl+O) и выйти из редактора (Ctrl+X).

Примечание

Если планируется использовать PostgreSQL, установленный на другой машине, то в строке подключения нужно указать имя хоста (либо IP-адрес) и порт установленного экземпляра PostgreSQL.

Запуск Database Migrator

Запуск Database Migrator выполняется командой вида:

dotnet ~/Загрузки/TerraLink.xDEPro/DbMigrator/TerraLink.xDEPro.DbMigrator.Host.dll --source <источник данных миграции> --target <целевая база данных>

где:

  • <источник данных миграции> - имя файла, который содержит сведения о структуре базы данных и ее изменениях от версии к версии;

  • <целевая база данных> - имя целевой базы данных на сервере баз данных.

Если источник данных не указан, то Database Migrator по умолчанию работает с базой данных интеграционного модуля Продукта.

Если базы данных с заданным именем не существует, то она будет создана. Если база данных с заданным именем существует, то она будет обновлена до версии, которой соответствует дистрибутив Database Migrator. Если имя базы данных не указано, то будет использовано имя по умолчанию - DOCFLOW_DB.

База данных интеграционного модуля

Для создания или обновления базы данных интеграционного модуля нужно выполнить команду:

dotnet ~/Загрузки/TerraLink.xDEPro/DbMigrator/TerraLink.xDEPro.DbMigrator.Host.dll

База данных сервиса генерации печатных форм

Примечание

Можно пропустить этот раздел, если на машину не планируется устанавливать компоненты сервиса генерации печатных форм.

Для создания или обновления базы данных сервиса генерации печатных форм нужно выполнить команду:

dotnet ~/Загрузки/TerraLink.xDEPro/DbMigrator/TerraLink.xDEPro.DbMigrator.Host.dll --source DbMigrator.Migrations.Printforms --target PRINTFORMS_DB

База данных оператора внутрикорпоративного ЭДО

Примечание

Можно пропустить этот раздел, если на машину не планируется устанавливать компоненты оператора внутрикорпоративного ЭДО.

Для создания или обновления базы данных оператора внутрикорпоративного ЭДО нужно выполнить команду:

dotnet ~/Загрузки/TerraLink.xDEPro/DbMigrator/TerraLink.xDEPro.DbMigrator.Host.dll --source DbMigrator.Migrations.Cdf --target CDF_DB

Отзыв прав суперпользователя

После создания баз данных следует отозвать права суперпользователя PostgreSQL у назначенной учетной записи. Для этого в терминале нужно начать сессию от имени встроенного пользователя postgres:

sudo su - postgres

Затем нужно выполнить команду:

psql -c "ALTER USER xde NOSUPERUSER"

где xde - пример имени пользователя.

Далее нужно завершить сессию для postgres, выполнив команду:

exit