Использование базы данных на другом хосте

Если вы хотите разместить базу данных на отдельном хосте отдельно от службы Staffcop и веб-интерфейса, выполните шаги:

  1. Предварительно создайте базу данных и все права доступа для пользователя базы данных staffcop на удалённом хосте.

  2. Внесите изменения в файл конфигурации PostgreSQL /etc/postgresql/11/main/postgresql.conf на хосте.

  • удалите символ # в начале строки, содержащей переменную listen_addresses, и добавьте разрешенные для доступа к серверу БД IP-адреса, например:

listen_addresses = '192.168.10.10, 192.168.10.112'

где 192.168.10.10 — адрес сервера Staffcop, а 192.168.10.112 — адрес рабочей станции администратора, например для работы с pgAdmin.

Примечание

Адрес сервера StaffCop предоставляет доступ к базе данных для пользователя staffcop через команду staffcop sql. Если хотите получить доступ с любого компьютера, добавьте в список символ *. Рекомендуем использовать этот вариант только для отладки.

  • после внесения изменений перезапустите сервер командой:

service postgresql restart
  1. Далее перенесите базу на другой хост. Воспользуйтесь этой статьёй.

  2. На сервере со Staffcop измените настройки в файле /etc/staffcop/config. Укажите реквизиты удалённого сервера:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'staffcop',
        'USER': 'staffcop',
        'PASSWORD': 'password',
        'HOST': '192.168.1.222',
        'PORT': '5432',
    },
}

измените поля **IP-адрес** и **пароль**.
  1. В файле /etc/postgresql/11/main/pg_hba.conf добавьте доступ для сервера Staffcop:

host    staffcop        staffcop        192.168.0.0/22  trust

Примечание

Путь до базы данных может быть другим. Он зависит от версии Postgresql, которую вы использовали.

  1. Проверьте работу сервера после переноса базы данных на другой хост.

Для упрощения настройки базы данных на удалённом хосте предварительно установите пакет Staffcop. Он сам настроит базу данных и, после восстановления резервной копии базы данных с основного хоста, сразу же будет готов принимать данные с основного сервера. Службу Staffcop на локальном хосте можно выключить:

systemctl disable staffcop

Или остановить:

systemctl stop staffcop